On Fri, 18 Feb 2005, Jeremy Mates wrote:
> Warning! The qq[] syntax produces different output than the heredoc:
>
> my $foo = <<EOD;
> asdf
> EOD
>
> my $bar = qq[
> asdf
> ];
>
> print "uh oh" unless $foo eq $bar;
Right. The qq[] syntax above & as I offered earlier, tacks on newlines.
These are identical:
$ cat ptest
#!/usr/bin/perl
my $foo = <<EOD;
asdf
EOD
my $bar = qq[asdf
];
print "uh oh" unless $foo eq $bar;
print qq{
\$foo:
[$foo]
\$bar:
[$bar]
};
$ perl ptest
$foo:
[asdf
]
$bar:
[asdf
]
$
That's just wacky that I had to force a newline on the qq form to get a
match; I don't see this as validating the heredoc approach at all.
I find the qq[] form so much more readable & forgiving than heredocs
that I generally never even consider using them unless I'm maintaing
something that uses them heavily or are otherwise forced to use them.
They have so little to offer though that I avoid them otherwise...
But as I say, YMMV...
--
Chris Devers