Training, Open Source computer languages
PerlPHPPythonMySQLApache / TomcatTclRubyJavaC and C++LinuxCSS 
Search for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Python, Lua and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Java, C, C++, Ruby, MySQL and Linux / Tomcat systems

Posted by admin (Graham Ellis), 22 December 2002
Perl uses the concept of "context" to work out what to do with a list - if you write @stuff in your code, it depends whether it's somewhere that a list actually makes sense (in which case the list is used), somewhere where a list does not make sense (in which case Perl uses the length of the list), or in double quotes (in which case Perl concatenates all elements of the list with a copy of the variable $" - default a space character - between each).

Here's a sample piece of code that I wrote during the Perl course I was running last week - I think I had the opportunity to add a few comments for once!

@stuff = (10,"twenty",30,"forty");

@morestuff = @stuff;   # take copy of list
$stuffabout = @stuff;   # you must mean the LENGTH of the list!

print @stuff,"\n";
print @morestuff,"\n";
print $#morestuff,"\n";         # 3 (0 to 3)
print $stuffabout,"\n";         # 4 (there are 4 elements)

($first,$second,$third,$next) = @stuff;
print "$next $second $first $third\n";

($oneth, @rest) = @stuff;       # 10 into $oneth, rest into @rest
print @rest,"\n";               # No spaces
print "@rest\n";                # Space between each
print @rest+0,"\n";             # Scalar - print the length

($stuffab) = @stuff;    # force list context.  1st element!
print $stuffab,"\n";

This page is a thread posted to the opentalk forum at and archived here for reference. To jump to the archive index please follow this link.

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2018: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01225 708225 • FAX: 01225 793803 • EMAIL: • WEB: • SKYPE: wellho