Oto mój skrypt Perl, a jego produkcja:Dlaczego Perl narzeka "Bezużyteczne użycie stałego w pustym kontekście", ale tylko czasami?
use strict;
use warnings;
(undef, 1); # no output
(0, 1); # no output
(1, 1); # no output
(2, 1); # "Useless use of a constant in void context at C:\...\void.pl line 7"
(3, 1); # "Useless use of a constant in void context at C:\...\void.pl line 8"
("", 1); # "Useless use of a constant in void context at C:\...\void.pl line 9"
("0", 1); # "Useless use of a constant in void context at C:\...\void.pl line 10"
("1", 1); # "Useless use of a constant in void context at C:\...\void.pl line 11"
spodziewałbym ostrzeżenia w każdym wierszu. Co jest wyjątkowego w przypadku undef
, 0
i , co powoduje, że tak się nie dzieje?
Chciałem to również powiedzieć. W sekcji "Bezużyteczne użycie% s w pustym kontekście" jest napisane, że "To ostrzeżenie nie zostanie wydane dla stałych numerycznych równych 0 lub 1" http://perldoc.perl.org/perldiag.html#Useless-use-of- % s-in-void-context – chilemagic
Ładne kopanie przez dokumenty. Nie wyjaśnia jednak '(undef, 1)'. (Czy wyrzucenie 'undef' nie jest uważane za coś odrzuconego?) –
@ Ted Hopp, Dodałem wyjaśnienie dla' undef'. – ikegami