Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: Puzzled about strict

by converter (Priest)
on Oct 30, 2002 at 05:13 UTC ( #208977=note: print w/replies, xml ) Need Help??

in reply to Puzzled about strict

Check the eval block in your FETCH method. You're doing:

next if ($@);

The code you're evaluating is violating one of the restrictions imposed by and is causing a fatal exception, meaning that the code isn't doing what you expect it to.

There is only one eval expression, changed "eval blocks" to "eval block"

Replies are listed 'Best First'.
Re: Re: Puzzled about strict
by djantzen (Priest) on Oct 30, 2002 at 05:23 UTC

    Specifically, the error is:

    "Can't use string ("a") as a subroutine ref while "strict refs" in use + at line [eval { $result .= &{$_}(@time); };]"

    If you must, you can turn off strict ("no strict 'refs'") immediately before that eval and turn it back on immediately after.

    Update: Just another thought, why not store your subroutines in a hash where the format strings are the keys? Something like:

    my %method_map = (a => sub { ... }, A => sub { ... } ); my $token = 'a'; # or 'A', 'D', etc. my $result .= $method_map{$token}->(@args);

    This is strict compatible and IMO is more maintainable code.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://208977]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2018-05-25 05:37 GMT
Find Nodes?
    Voting Booth?