sub foo {
my @files;
sub bar {
push @files, @_;
};
bar(@_);
return @files;
}
print join ' ', foo(123, 456); # prints '123 456'.
print join ' ', foo('abc', 'def'); # prints nothing.
####
my @files;
sub foo {
bar(@_);
}
sub bar {
push @files, @_;
}
foo(123, 456);
print join ' ', @files; # '123 456'
foo('abc', 'def');
print join ' ', @files; # '123 456 abc def'
####
sub foo {
@files = ();
bar(@_);
shift;
foo(@_) if @_;
}
####
sub foo {
my @files;
my $bar = sub {
push @files, @_;
};
$bar->(@_);
return @files;
}
print join ' ', foo(123, 456); # '123 456'
print join ' ', foo('abc', 'def'); # 'abc def'
####
sub foo {
my @files;
my $bar = sub {
push @files, @_;
};
$bar->(@_);
shift;
return @files, @_ ? foo(@_) : ();
}
print join ' ', foo(123, 456); # '123 456 456'
print join ' ', foo('abc', 'def'); # 'abc def def'