Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^2: new to perl

by AnomalousMonk (Archbishop)
on May 01, 2014 at 10:38 UTC ( [id://1084601]=note: print w/replies, xml ) Need Help??


in reply to Re: new to perl
in thread new to perl

... cease to exist as soon as you go to the next code line.

Indeed, it may cease to exist even before that, or rather, never come into existence in the first place. In the example below, the compiler doesn't even bother with the literal values. I suspect it only compiles  $var because it isn't smart enough to be sure there is no side-effect associated with the reference: maybe it's a tie-ed variable? Other kinds of compilers may be much more aggressive about eliminating such "dead code."

c:\@Work\Perl\monks>perl -wMstrict -MO=Deparse,-p -le "my $var = 42; (17, $var, 'a string'); (137, 'd string'); " Useless use of a constant (17) in void context at -e line 1. Useless use of private variable in void context at -e line 1. Useless use of a constant (a string) in void context at -e line 1. Useless use of a constant (137) in void context at -e line 1. Useless use of a constant (d string) in void context at -e line 1. BEGIN { $^W = 1; } BEGIN { $/ = "\n"; $\ = "\n"; } use strict 'refs'; (my $var = 42); ('???', $var, '???'); ('???', '???'); -e syntax OK

Replies are listed 'Best First'.
Re^3: new to perl
by Laurent_R (Canon) on May 01, 2014 at 14:01 UTC
    Yeah, clearly, I agree, if you have only that in a code line:
    (17, $var, 'a string');
    it is completely useless, and the compiler tells it to you (at least if you use the strict and/or warnings pragmata). Such a list comes to existence only insofar it is somehow used for something. My point was the opposite view, to show how a list can sometimes be useful, but with a very limited scope (usually at most one code line). If you need larger scope, then give it a name and promote it to an array (or possibly another data structure).

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1084601]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (3)
As of 2024-04-19 22:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found