in reply to Useless use of private variable
for ($s; ^^ useless [download]
Fix:
my $s = 0; for (; $s<=$s_no; $s++) [download]
Better fix:
for (my $s=0; $s<=$s_no; $s++) [download]
Even better fix:
for my $s (0..$s_no) [download]