-Original Message-
From: Paul Tremblay [mailto:[EMAIL PROTECTED]]
Sent: Thursday, August 01, 2002 12:17 PM
To: [EMAIL PROTECTED]
Subject: changing multiple flags and changing them back
I have a series of flags that I need to change all at once, and then
change back, and was wondering if I could use an array or hash to do
this.
I am parsing an RTF file, and when I find a footnote, I need
to preserve
the flags of the non-footnote text. So if I was in a table, I need to
save the $in_table flag. Then when I am done with the footnote text, I
need to re-set the $in_table flag to its previous state.
So far I have this:
sub start_footnote{
$previous_in_table = $in_table;
...
}
sub end_footnone{
$in_table = $previous_in_table;
...
}
This works find except I might have 15 or 20 flags I need to set or
re-set. I would like to use an array like this:
@flags = ($in_table, $after_cell, $in_paragraph);
When I finish with my footnote, I will have an array of the previous
values. Now how do I assign these values to the variables?
Just reverse the assignment:
($in_table, $after_cell, $in_paragraph) = @flags;
You might also consider using a simple stack:
my @stack;
sub start_footnote
{
push @stack, [ $in_table, $after_cell, $in_paragraph ];
...
}
sub end_footnote
{
($in_table, $after_cell, $in_paragraph) = @{ pop @stack };
...
}
This will support multiple levels, if that is required (i.e. footnote
within a footnote).
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]