in reply to How do I get to this 'simple' helper?

You have a string fragment of "my $t = shift;" in there. Double quotes interpolate variables like $t and $accessor. You declared my $accessor, but not $t.

You need to escape the sigils or use single quotes to avoid interpolating the $t.

Basically, you're trying to pass something like this to the eval:

sub __PACKAGE__::WhatARGVsaid { my <undef>=shift; <undef>->{WhatARGVsaid}=__PACKAGE__::WhatARGVsaid if WhatA +RGVsaid; <undef>->{WhatARGVsaid}; }

Replies are listed 'Best First'.
Re^2: How do I get to this 'simple' helper?
by perl-diddler (Chaplain) on Sep 02, 2010 at 23:24 UTC

    um... But but as a 'sub', this works:

    sub proto { my $p=shift; $p->{proto}=$_[0] if @_; $p->{proto}; }

    I don't see what you mean by 'my $t=shift;' being a fragment. I have 'my $p=shift;'in the code above and it works fine. Pops first arg off and uses it as the reference, tests if there's any more params, and if so, assigns the 1st one to the named value, else just returns the named value.

    oh!!!!

    DOI!

    Nevermind....

    *sigh*...this really is one of those days.

    (car sitting in drive-way won't start, tow-truck on way..., among OTHER things!)