in reply to Re: Using an object's value instead of a global variable
in thread Using an object's value instead of a global variable

Unless this is a singleton class, which is a fancy term for global, in which case you could store the handle ($self) to the one instance into $data and then use $data->{ANIMAL} in the here-doc and you would achieve what you want.

Okay, you've got me interested but I'm a bit lost. Could you kindly show me how?

  • Comment on Re^2: Using an object's value instead of a global variable

Replies are listed 'Best First'.
Re^3: Using an object's value instead of a global variable
by BrowserUk (Patriarch) on Jan 23, 2005 at 01:56 UTC

    I do not think that this is a good idea but:

    The module (with a stupid name for my purposes):

    package _424188; require Exporter; our @ISA = qw[ Exporter ]; our @EXPORT = qw[ the_mascot ]; my $data = { ANIMAL => "camel" }; sub the_mascot { print<<"END"; Hey, did you know that Perl\'s mascot is a: $data->{ANIMAL} END } sub new { my $class = shift; return bless $data, $class; } sub animal { my $self = shift; $self->{ANIMAL} = $_[0]; } sub mascot { the_mascot(); } 1;

    And a program that uses it:

    #! perl -slw use strict; use _424188; the_mascot(); my $obj = new _424188; $obj->mascot; $obj->animal( 'dromadary' ); $obj->mascot; the_mascot(); __END__ P:\test>424188 Hey, did you know that Perl's mascot is a: camel Hey, did you know that Perl's mascot is a: camel Hey, did you know that Perl's mascot is a: dromadary Hey, did you know that Perl's mascot is a: dromadary

    Examine what is said, not who speaks.
    Silence betokens consent.
    Love the truth but pardon error.
      Nice. I never thought of it in that way... thanks