Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

special character question

by dicty (Sexton)
on Mar 03, 2013 at 23:21 UTC ( #1021543=perlquestion: print w/replies, xml ) Need Help??
dicty has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,

In the code below, what does "$@" mean?

eval { store(\%hash, "$dir/pre_hash"); };

print "Error writing to file: $@\n" if $@;



Replies are listed 'Best First'.
Re: special character question
by tobyink (Abbot) on Mar 03, 2013 at 23:25 UTC

    perlvar tells you all you need to know about Perl's special variables.

    If a fatal error occurs within an eval call, the error message is stored in $@, and execution resumes from after the eval.

    So the code in your example calls a function called store and if that raises a fatal error, prints it to STDOUT.

    package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name
Re: special character question
by choroba (Bishop) on Mar 03, 2013 at 23:26 UTC
    See Error Variables. $@ is the error (or exception raised) in the last eval.
    لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: special character question
by vinoth.ree (Monsignor) on Mar 04, 2013 at 05:09 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1021543]
Approved by tobyink
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2018-05-28 01:41 GMT
Find Nodes?
    Voting Booth?