Your math is unnecessarily complicated.
One could further simplify the math by taking advantage of the fact that the [ ] subscript operator does its own 'floor' operation by just throwing away the fractional part of the (inherently) double number:
(Of course, this doesn't address the root problem of generating an index that's out of range!)c:\@Work\Perl>perl -wMstrict -le "use POSIX qw(floor); ;; print 'perl version ', $]; ;; my @PC1=(58,50,42,34,26,18,10,2, 60,52,44,36,28,20,12,4, 62,54,46,38,30,22,14,6, 64,56,48,40,32,24,16,8, 57,49,41,33,25,17, 9,1, 59,51,43,35,27,19,11,3, 61,53,45,37,29,21,13,5, 63,55,47,39,31,23,15,7); ;; my @parr = qw(0 M 0 A 0 I 0 L); printf $parr[floor( $PC1[$_]/8 )] for (0..63); print ''; printf $parr[ $_ / 8 ] for @PC1; " perl version 5.014004 Use of uninitialized value in printf at -e line 1. L0I0A0M0L0I0A0M0L0I0A0M0L0I0A0ML0I0A0M0L0I0A0M0L0I0A0M0L0I0A0M0 Use of uninitialized value in printf at -e line 1. L0I0A0M0L0I0A0M0L0I0A0M0L0I0A0ML0I0A0M0L0I0A0M0L0I0A0M0L0I0A0M0
Give a man a fish: <%-(-(-(-<
In reply to Re^2: Use of uninitialized value within
by AnomalousMonk
in thread Use of uninitialized value within
by gary16
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |