Today I stumbled across a curious problem with my Perl code.
I tried the following expression:
print shift sort @array;
which the interpreter rejected with the complaint
Type of arg 1 to shift must be array (not sort) at script.pl line 7, n
+ear "@array;"
However, the following does work as desired:
my @a = ( 4, 1, 3, 2 );
my @b = sort @a;
print shift @b;
So far, I was under the impression that
1. sort @a returns an array, namely the sorted version of @a.
2. shift takes an array as argument and returns a scalar.
Based on the interpreter's feedback I now realise my previous Perl world view must have been faulty in some respect.
Can anybody please enlighten me as to where the problem with the first code snippet above is?
Thanks and regards -
Pat
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.