This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #60204] Unhelpful error message from unpack
authorMarcus Holland-Moritz <mhx-perl@gmx.net>
Wed, 23 May 2012 21:50:31 +0000 (14:50 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 24 May 2012 00:59:22 +0000 (17:59 -0700)
commit21361d0729743e699b2954b542f05a2e4eabd980
treeb4f46494969725415a45b9c85172af1ba8cf0d24
parent909564a7d63dd41ca03b7bc9659d8c7b695220d2
[perl #60204] Unhelpful error message from unpack

Nigel Sandever said:
> The error message produced by the following snippets is very unhelpful:
>
> c:\>perl -wle"print unpack 'v/a*', qq[a]"
> '/' must follow a numeric type in unpack at -e line 1.
>
> c:\>perl -wle"print unpack 'v/a*', ''"
> '/' must follow a numeric type in unpack at -e line 1.
>
> c:\>perl -wle"print unpack 'v/a*', ' '"
> '/' must follow a numeric type in unpack at -e line 1.

The "problem" is that the data string is too short. But
unpack doesn't generate a warning (or croak) in this case
for simple patterns:

mhx@r2d2 $ perl -MData::Dumper -we'print Dumper([unpack "n", "a"])'
$VAR1 = [];

So, I'd say your code should just behave in exactly the
same way. No warning, no return values.
pp_pack.c
t/op/pack.t