On Friday, May 17, 2002, at 09:34 , Adam Morton wrote:
[..]
>
>
>         my $x = 17;
>
>         package A;
>         $x = 12;
>
>         package B;
>         $x = 20;
>
>         # $x is now 20.
>         # $A::x and $B::x are still undefined

and as you notice there is almost no way to make
that fly - since there exists no unique construct

        $A::x

what you would want to do is some form of encapsulation game
with:

        my $x = 17;
        my $y = &A::getX;
        my $z = &B::getX;

        print "\$x is $x and \$y is $y while \$z is $z\n";

        #---------------------The Package Line -------
         package A;
         sub getX {
          my $x = 12;
          $x;
                }
         package B;
         sub getX {
          my $x = 20;
          $x;
                }

if you do not do the 'my $x' tricks - then you run into the
side effect game that you were expecting...

All of which leads me to wonder why in God's Green Earth
you would wish to use a 'package' approach to begin with.

given the initial construction of the form

        my ($a, $b) = ( '' , '');
        
        $b = sub1($a);
        sub2($b);

        #-----das boot dives here....

        sub sub1 {
                my ($inarg) = @_

                .....
                $myOutArg
        }

        sub sub2 {
                my ($inarg) = @_

                .....
                $myOutArg
        }

would allow us to cope with the scope and pass the return of sub1
to sub2 - yes, you are correct, it would be possible to SUCK IN
and use the "globally" scoped $a and $b - but that also means that
one can not move along to building

        package Dornitz::derFleet

undt stuffing all of one's subs into it so that the code would
be simplified to

        use Dornitz::derFleet qw/:lant/;

        my ($a, $b) = ( '' , '');
        
        $b = sub1($a);
        sub2($b);

        exit(0);

capish paisano???

ciao
drieux

---


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to