my $command = $seq->cmd_name;
# Zero-width characters.
- if ($command eq 'Z') { return bless \ '\&', 'Pod::Man::String' }
+ if ($command eq 'Z') {
+ my $v = '\&'; return bless \ $v, 'Pod::Man::String';
+ }
# C<>, L<>, X<>, and E<> don't apply guesswork to their contents.
local $_ = $self->collapse ($seq->parse_tree, $command =~ /^[CELX]$/);
# Handle links.
if ($command eq 'L') {
- return bless \ ($self->buildlink ($_)), 'Pod::Man::String';
+ # XXX bug in lvalue subroutines prevents this from working
+ #return bless \ ($self->buildlink ($_)), 'Pod::Man::String';
+ my $v = $self->buildlink($_);
+ return bless \$v, 'Pod::Man::String';
}
# Whitespace protection replaces whitespace with "\ ".
pop @seq_stack;
my $errmsg = "** Unterminated $cmd<...> at $file line $line\n";
(ref $errorsub) and &{$errorsub}($errmsg)
- or (defined $errmsg) and $self->$errorsub($errmsg)
+ or (defined $errorsub) and $self->$errorsub($errmsg)
or warn($errmsg);
$seq_stack[-1]->append($expand_seq ? &$xseq_sub($self,$seq) : $seq);
$seq = $seq_stack[-1];
is used.
Note that something resembling the previous behavior can still be
-obtained by putting C<BEGIN { $^C = 0; exit; } at the very end of
+obtained by putting C<BEGIN { $^C = 0; exit; }> at the very end of
the top level source file.
=head2 Potential to leak DATA filehandles
character. That's also the case for Perl. The C<open> call
remains the same--just its argument differs.
-If the leading character is a pipe symbol, C<open) starts up a new
+If the leading character is a pipe symbol, C<open> starts up a new
command and open a write-only filehandle leading into that command.
This lets you write into that handle and have what you write show up on
that command's standard input. For example: