Thanks for the info. But to be clear, I was exploring l, h, etc. exploratively and unfortunately only showed a floating point example. The exact same differences (between 5.6.1 and 5.8.0) show up when used for integer conversions.
# file: printf.pl printf "%4.4f\n", 1; printf "%4.4lf\n", 1; printf "%4.4hf\n", 1; printf "%4.4qf\n", 1; printf "%4.4Lf\n", 1; printf "%4.4llf\n", 1; #outputs: $ /usr/bin/perl printf.pl 1.0000 1.0000 1.0000 %4.4qf %4.4Lf %4.4llf $ /usr/local/bin/perl printf.pl 1.0000 %4.4lf %4.4hf %4.4qf 1.0000 1.0000
Where /usr/bin/perl is 5.6.1 and /usr/local/bin/perl is 5.8.0 with the same compile flags (other than ithreads as previously mentioned) and the same version of gcc under linux. It was an integer conversion usage in Damian's Text::Reformat module that brought this to light. Something funny is definitely going on.
In reply to Re: Re: printf size flag incompatibility
by Anonymous Monk
in thread printf size flag incompatibility
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |