in reply to Re: use of strict
in thread use of strict

you will still get an error that you can't use 3 as a reference while strict is in effect. This is because Perl sees %${w} and interprets it as %{ ${ w }}, trying to interpret the value of $w as a reference.

Did you test your assumption?

my $w = 5; my $str = "abc"; my $line = sprintf "%${w}s ", $str; print "'$line'\n"; __END__ ' abc '

The format string is %5s with perl 5, version 20, subversion 2 (v5.20.2).

perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

Replies are listed 'Best First'.
Re^3: use of strict
by Corion (Patriarch) on Jul 25, 2017 at 07:54 UTC

    No, I didn't test my assumption, but my wonderment about it slowly ceases.

    Perl does not interpolate hashes in strings, as it accurately says in perlop:

    For constructs that do interpolate, variables beginning with "$" or "@" are interpolated.
    use strict; print "%foo";

    So, my argumentation above is simply wrong as Perl will not go looking for a hash (reference).