Return value based on context : Context « Subroutine « Perl

Home
Perl
1.Array
2.CGI
3.Class
4.Data Type
5.Database
6.File
7.GUI
8.Hash
9.Language Basics
10.Network
11.Regular Expression
12.Report
13.Statement
14.String
15.Subroutine
16.System Functions
17.Win32
18.XML
Perl » Subroutine » Context 




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";
}

   
    
    
  














Related examples in the same category
1.Scalar and list Context
2.Wantarray function.
3.Context and Subroutines
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.