Line contination characters - how do I access these variables

[email protected]
Newsgroups perl.recdescent
Message-ID <[email protected]>
Hello,

I am trying to learn RecDescent. I found an example in the archive of this
mailing list that was close to what I want to do. The subject line of the
thread was:

Line contination characters

Damian gave the solution I am studying. I have attached it at the bottom. I
don't understand the section between the {{ }}. For example:

		{ {command => $item[-1]} }

From tests, I know that $item[-1] matches the line (or multiline} command or
comment. What I don't understand is the:

	command => $item[-1]

Is this an array that stores all the commands/comments? If yes, how do I
access this variable. I tried:

print "@command \n";

and

print "$command \n";

but both gave errors.

I would appreciate it if someone would email me a tutorial that explains
this.

Thanks,

jr


Here is Damian's solution.
-----------cut-----------cut-----------cut-----------cut-----------cut------
----

use Parse::RecDescent;

my @lines = << 'EOINST';
// COMMAND ARG1-VALUE,ARG2-VALUE, +
   ARG3-VALUE,ARG4-VALUE, +
   EVEN-MORE-ARGS
// ANOTHERCOMMAND
* and a comment
* or two
EOINST

my $parse = Parse::RecDescent->new(join '', <DATA>) or die "Bad Grammar!";

use Data::Dumper 'Dumper';
print Dumper [
$parse->Instructions("@lines") or die "NOT parsable!!\n"
];

__DATA__

Instructions: command(s)

command: multiline_command
       | singleline_command
       | comment

singleline_command:
	'//'  /.*/
		{ {command => $item[-1]} }

multiline_command:
	'//' /(.*?[+][ \t]*\n)+.*/
		{ $item[-1] =~ s/[+][ \t]*\n//g; {command => $item[-1]} }

comment:
	'*'  /.*/
		{ {comment => $item[-1]} }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.