Mega Code Archive

 
Categories / Perl / Subroutine
 

Return value based on context

#!/usr/bin/perl use warnings; use strict; sub list_files {     die "Function called in void context" unless defined wantarray;     my $path = shift;     return unless defined $path;     chomp $path;        $path.='/*' unless $path =~/\*/;       my @files = glob $path;     return wantarray?@files:\@files; } my $path = $ARGV[0] || print("Enter Path: ") && <>; # call subroutine in list context print "Get files as list:\n"; my @files = list_files($path); foreach (sort @files) {     print "\t$_\n"; } # call subroutine in scalar context print "Get files as scalar:\n"; my $files = list_files($path); foreach (sort @{$files}) {     print "\t$_ \n"; }