perl/サブルーチン〜myとlocalでいろいろ実験してみた〜
また公開ボタンを押すのを忘れてた〜。これ、先週のです。
実験(1)
#! usr/bin/perl use strict; use warnings; my $x=123; print "a:$x\n"; { print "b:$x\n"; my $x=456; &print_x; print "c:$x\n"; } print "d:$x\n"; &print_x; print "e:$x\n"; sub print_x{ print "sub1:$x\n"; $x .='x'; print "sub2:$x\n"; }
結果(1)
a:123 b:123 sub1:123 sub2:123x c:456 d:123x sub1:123x sub2:123xx e:123xx
実験(2)
#! usr/bin/perl use strict; use warnings; my $x=123; print "a:$x\n"; { print "b:$x\n"; my $x=456; &print_x; print "c:$x\n"; sub print_x{ print "sub1:$x\n"; $x .='x'; print "sub2:$x\n"; } } print "d:$x\n"; &print_x; print "e:$x\n";
結果(2)
a:123 b:123 sub1:456 sub2:456x c:456x d:123 sub1:456x sub2:456xx e:123
実験(3)
# usr/bin/perl use strict; use warnings; my $x=123; print "a:$x\n"; { sub print_x{ print "sub1:$x\n"; $x .='x'; print "sub2:$x\n"; } print "b:$x\n"; my $x=456; &print_x; print "c:$x\n"; } print "d:$x\n"; &print_x; print "e:$x\n";
結果(3)
a:123 b:123 sub1:123 sub2:123x c:456 d:123x sub1:123x sub2:123xx e:123xx