in reply to new to perl

 (17, $var, "a string") is a list, i.e. a very ephemeral thing that will usually cease to exist as soon as you go to the next code line. You can either use it immediately, for example this way:
print "$_ \n" foreach (17, $var, "a string");
or you need to promote it to become a more persistent item, usually with a name to access to it, such as an array:
my @array = (17, $var, "a string"); # now you can access the element of the original list by using the arr +ay, e.g.: my $first_num = $array[0];

Replies are listed 'Best First'.
Re^2: new to perl
by AnomalousMonk (Archbishop) on May 01, 2014 at 10:38 UTC
    ... 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
      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).