http://qs321.pair.com?node_id=799021

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

What is going on here
#!/usr/bin/perl -- use strict; use warnings; sub huh1 { my $huh = open my $fh, '>', $_[0] or die $!; $huh += print $fh 'huh1'; $huh += close $fh; } sub huh2 { my $huh = open my $fh, '>', shift or die $!; $huh += print $fh 'huh2'; $huh += close $fh; } sub huh3 { my $huh = open my $fh, '>', undef or die $!; $huh += print $fh 'huh3'; $huh += close $fh; } sub huh31 { my @yund; my $huh = open my $fh, '>', shift @yund or die $!; $huh += print $fh 'huh31'; $huh += close $fh; } sub huh4 { my $yund; my $huh = open my $fh, '>', $yund or die $!; $huh += print $fh 'huh4'; $huh += close $fh; } print huh1(),"\n"; print huh2(),"\n"; print huh3(),"\n"; print huh31(),"\n"; print huh4(),"\n"; __END__ 3 3 3 3 Use of uninitialized value $yund in open at - line 32. No such file or directory at - line 32.