rsFalse has asked for the wisdom of the Perl Monks concerning the following question:
Hello again,
I was playing with 'do{ }' and found interesting behaviour. Here is a code:
I was playing with 'do{ }' and found interesting behaviour. Here is a code:
output:#!/usr/bin/perl -l use strict; use warnings; my $uninitialized; print do { $uninitialized }; print do {}; print do { if( 1 ){} }; print do { if( 0 ){} }; print '-' x 10; print scalar do { $uninitialized }; print scalar do {}; print scalar do { if( 1 ){} }; print scalar do { if( 0 ){} };
For me it is strange that 'scalar do {};' and 'scalar do { if( 0 ){} };' have different outputs, as the codes look equivalent. Can someone explain a difference in the output?Use of uninitialized value $uninitialized in print at ./perlmonks_do_u +nitialized.pl line 8. 0 ---------- Use of uninitialized value $uninitialized in print at ./perlmonks_do_u +nitialized.pl line 15. Use of uninitialized value in print at ./perlmonks_do_unitialized.pl l +ine 16. Use of uninitialized value in print at ./perlmonks_do_unitialized.pl l +ine 17. 0
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: printing unitialized value of the 'do BLOCK' (updated)
by haukex (Archbishop) on Dec 17, 2019 at 15:06 UTC | |
by Eily (Monsignor) on Dec 17, 2019 at 15:18 UTC | |
by Eily (Monsignor) on Dec 17, 2019 at 15:42 UTC | |
by LanX (Saint) on Dec 17, 2019 at 20:01 UTC | |
by haukex (Archbishop) on Dec 17, 2019 at 16:09 UTC | |
by rsFalse (Chaplain) on Dec 23, 2019 at 08:22 UTC | |
by LanX (Saint) on Dec 23, 2019 at 12:54 UTC | |
| |
by haukex (Archbishop) on Dec 17, 2019 at 15:27 UTC | |
by ikegami (Patriarch) on Dec 17, 2019 at 15:48 UTC | |
by haukex (Archbishop) on Dec 17, 2019 at 16:08 UTC | |
| |
by tobyink (Canon) on Dec 17, 2019 at 18:19 UTC | |
| |
by rsFalse (Chaplain) on Dec 17, 2019 at 17:24 UTC | |
| |
Re: printing unitialized value of the 'do BLOCK'
by Eily (Monsignor) on Dec 17, 2019 at 15:11 UTC |
Back to
Seekers of Perl Wisdom