in reply to (Beginner) Can 'qw' be implemented into a list?

Hello Halbird,
follow the wise advices from other monks, first of all on 'how ask a question'..

To strictly stick with with your question, as you present as a newbie, i like to address you to the basic concepts: qw is a Quote like Operator.
qw/STRING/ Evaluates to a list of the words extracted out of STRING, using embedd +ed whitespace as the word delimiters. It can be understood as being r +oughly equivalent to: split(" ", q/STRING/); the differences being that it generates a real list at compile time, a +nd in scalar context it returns the last element in the list. So this + expression: qw(foo bar baz) is semantically equivalent to the list: "foo", "bar", "baz"
So qw is used (mostly) in list context to return a list, and yes you can assign a list to an array. Crucial concepts are: list and context. Basicly a list is an UNordered sequence of values. A list is like a primitive idea in Perl. Lists cannot be accessed using an index. Array are indexed lists so you can access one element by the mean of its index. Look for context at modernperl and obviously at perlmonks.

HtH
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^2: (Beginner) Can 'qw' be implemented into a list?
by AnomalousMonk (Archbishop) on Mar 24, 2015 at 18:13 UTC
    ... a list is an UNordered sequence of values. ... Lists cannot be accessed using an index.

    I disagree with both these assertions. To my way of thinking, lists are most certainly ordered. In what sense do you think of them otherwise? They can also be array indexed:

    c:\@Work\Perl>perl -wMstrict -le "my $s = ('foo', 'bar', 'baz')[1]; print qq{'$s'}; ;; $s = (qw(zip zap zop))[1]; print qq{'$s'}; ;; $s = qw(hic hac hoc)[1]; print qq{'$s'}; " 'bar' 'zap' 'hac'
    Note: I think the  qw(hic hac hoc)[1] example relies on a syntactic feature that, if not deprecated, is at least disparaged and contumed, and may be slated to go away someday/someversion (I'm running this with 5.14). It is certainly deprecated (as of 5.14) in a for-loop:
    c:\@Work\Perl>perl -wMstrict -le "for my $s qw(hic hac hoc) { print qq{'$s'}; } " Use of qw(...) as parentheses is deprecated at -e line 1. 'hic' 'hac' 'hoc'


    Give a man a fish:  <%-(-(-(-<

      You are obviously right, thanks to point me in the right direction. I still find difficult to be precise describing Perl behaviour. My attempt was to tell the difference between lists and arrays and the OP confusion undeerstanding the @arr = qw (a b); construct.

      Anyway you too are wrong, because the latin demonstrative pronouns are: qw(hic haec hoc) and not qw(hic hac hoc) ...;=)

      L*
      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

        A little hiccup in my Latin lexicon. :)


        Give a man a fish:  <%-(-(-(-<