Guys Jestem trochę zdezorientowany, grałem z scopingu w Perl, kiedy napotkał tego:Różnica między blokiem i funkcji w zakresie określania zakresu w Perl
#! usr/bin/perl
use warnings;
use strict;
sub nested {
our $x = "nested!";
}
print $x; # Error "Variable "$x" is not imported at nested line 10."
print our $x; # Doesn't print "nested!"
print our($x) # Doesn't print "nested!"
Ale kiedy robię to:
{
our $x = "nested";
}
print our($x); # Prints "nested"
print our $x; # Prints "nested"
print $x; # Prints "nested"
Więc możecie wyjaśnić mi, dlaczego te działa, a nie?
, ale co z zakresem funkcji? –
@BmarkmarkCaday - nie czekałeś aż do drugiej edycji :).BTW, pominąłem ścisłe/ostrzeżenia w ostatnim poleceniu po prostu dlatego, że formatowanie SE stworzył poziomy scoller ze względu na zbyt długi ciąg. – DVK
@DVK: '$ perl -Mstrict -we '...'' – Zaid