#!/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"; }