Skip to content

Instantly share code, notes, and snippets.

@ribasushi
Created September 17, 2011 15:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ribasushi/1224013 to your computer and use it in GitHub Desktop.
Save ribasushi/1224013 to your computer and use it in GitHub Desktop.
context sensitiveness
#!/usr/bin/env perl
use warnings;
use strict;
use Carp 'cluck';
sub worker {
my $ctx =
defined wantarray.
? wantarray
? 'LIST'.
: 'SCALAR'
: 'VOID'
;
cluck "worker() has been called in $ctx context";
warn "\n";
my @ret = (qw/a b c/);
return @ret;
}
sub call_void {
worker();
cluck "Result is: N/A";
}
sub call_scalar {
my $res = worker();
cluck "Result is: $res";
}
sub call_list {
my @res = worker();
cluck( "Result is: " . join ', ', @res );
}
for (qw/scalar list void/) {
my $m = "call_$_";
__PACKAGE__->$m;
warn "\n\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment