Larry Wall writes: > Correct, $_ is always lexical. But... > > : or * will it be implicitely "my $_" -- class/package lexical > > There's no such thing as a "class/package lexical". I think you > mean file-scoped lexical here.
ooo, now I understand : *scope* is orthogonal concept to class/module symbol-tables . scope is related only to ( current ) lexical symbol-table. and the outmost scope is file scope . all other ( inner ) lexical scopes are enclosed by closure braces wheither it is a definition of class , subroutine or loop . > > : will it be an error to declare it as "our $_" ; > > No, in this case, $_ is still considered a lexical, but it just happens > to be aliased to a variable in the current package. > which variable ? it seems that "our $_" is something like that (???) my $_ # implicit -- at the beginning of file ( or actually any other # lexical scope .. .. .. our $_ ; # translated to : our $Main::_ := $_ ; .. # or $_ := $Main::_ .. .. ??? ( i have in mind that "our $thing " is something like this : "dont worry , $thing is variable from current package ) but that would be strange , because I thaought that my/our manipulate names in symbol-table , while aliasing is compleatly orthogonal to that. or "our $_" is just special case with perl making additional magic . > aliased. But the name $_ will always be interpreted according to the > lexical definitions set up by "my" and "our" (including the implicit > outer "my"). > arcadi