#!perl use 5.012; # strict, // use warnings; my $favorites = join '~~~', map("t|k|$_", 1..30); # create data for SSCCE print "initial favorites: $favorites\n"; print "="x40, "\n"; ##################################### { print qq#This was my original: it doesn't quite work, because the 25th will contain _all_ the remaining text \n#; my @favs = split /~~~/,$favorites,25; my $favnums = ""; foreach (@favs){ next unless defined; printf "fav: %s\t", $_; my ($favtitle,$favlink,$favnum) = split /\|/,$_; # you had the wrong split expression; you only need one pipe in the split $favnums = $favnum . "," . $favnums; print "partial favnums: $favnums\n"; } print "WRONG FOR 25+: favnums: $favnums\n"; print "="x40, "\n"; } ##################################### { print qq#This tweaks the limit\n#; my @favs = split /~~~/,$favorites,26; $#favs = 24 if @favs>25; # clips it to 25, so it throws away the 26th entry if there was one my $favnums = ""; foreach (@favs){ next unless defined; printf "fav: %s\t", $_; my ($favtitle,$favlink,$favnum) = split /\|/,$_; # you had the wrong split expression; you only need one pipe in the split $favnums = $favnum . "," . $favnums; print "partial favnums: $favnums\n"; } print "CORRECT LIMIT+TRIM: final favnums: $favnums\n"; print "="x40, "\n"; } ##################################### { print qq#This uses the counter\n#; my @favs = split /~~~/,$favorites; my $favnums = ""; foreach (@favs){ state $counter = 0; last if $counter++ >= 25; printf "fav: %s\t", $_; my ($favtitle,$favlink,$favnum) = split /\|/,$_; # you had the wrong split expression; you only need one pipe in the split $favnums = $favnum . "," . $favnums; print "partial favnums: $favnums\n"; } print "CORRECT COUNTER-based: final favnums: $favnums\n"; print "="x40, "\n"; } __END__ initial favorites: t|k|1~~~t|k|2~~~t|k|3~~~t|k|4~~~t|k|5~~~t|k|6~~~t|k|7~~~t|k|8~~~t|k|9~~~t|k|10~~~t|k|11~~~t|k|12~~~t|k|13~~~t|k|14~~~t|k|15~~~t|k|16~~~t|k|17~~~t|k|18~~~t|k|19~~~t|k|20~~~t|k|21~~~t|k|22~~~t|k|23~~~t|k|24~~~t|k|25~~~t|k|26~~~t|k|27~~~t|k|28~~~t|k|29~~~t|k|30 ======================================== This was my original: it doesn't quite work, because the 25th will contain _all_ the remaining text fav: t|k|1 partial favnums: 1, fav: t|k|2 partial favnums: 2,1, fav: t|k|3 partial favnums: 3,2,1, fav: t|k|4 partial favnums: 4,3,2,1, fav: t|k|5 partial favnums: 5,4,3,2,1, fav: t|k|6 partial favnums: 6,5,4,3,2,1, fav: t|k|7 partial favnums: 7,6,5,4,3,2,1, fav: t|k|8 partial favnums: 8,7,6,5,4,3,2,1, fav: t|k|9 partial favnums: 9,8,7,6,5,4,3,2,1, fav: t|k|10 partial favnums: 10,9,8,7,6,5,4,3,2,1, fav: t|k|11 partial favnums: 11,10,9,8,7,6,5,4,3,2,1, fav: t|k|12 partial favnums: 12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|13 partial favnums: 13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|14 partial favnums: 14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|15 partial favnums: 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|16 partial favnums: 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|17 partial favnums: 17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|18 partial favnums: 18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|19 partial favnums: 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|20 partial favnums: 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|21 partial favnums: 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|22 partial favnums: 22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|23 partial favnums: 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|24 partial favnums: 24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|25~~~t|k|26~~~t|k|27~~~t|k|28~~~t|k|29~~~t|k|30 partial favnums: 25~~~t,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, WRONG FOR 25+: favnums: 25~~~t,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, ======================================== This tweaks the limit fav: t|k|1 partial favnums: 1, fav: t|k|2 partial favnums: 2,1, fav: t|k|3 partial favnums: 3,2,1, fav: t|k|4 partial favnums: 4,3,2,1, fav: t|k|5 partial favnums: 5,4,3,2,1, fav: t|k|6 partial favnums: 6,5,4,3,2,1, fav: t|k|7 partial favnums: 7,6,5,4,3,2,1, fav: t|k|8 partial favnums: 8,7,6,5,4,3,2,1, fav: t|k|9 partial favnums: 9,8,7,6,5,4,3,2,1, fav: t|k|10 partial favnums: 10,9,8,7,6,5,4,3,2,1, fav: t|k|11 partial favnums: 11,10,9,8,7,6,5,4,3,2,1, fav: t|k|12 partial favnums: 12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|13 partial favnums: 13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|14 partial favnums: 14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|15 partial favnums: 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|16 partial favnums: 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|17 partial favnums: 17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|18 partial favnums: 18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|19 partial favnums: 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|20 partial favnums: 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|21 partial favnums: 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|22 partial favnums: 22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|23 partial favnums: 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|24 partial favnums: 24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|25 partial favnums: 25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, CORRECT LIMIT+TRIM: final favnums: 25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, ======================================== This uses the counter fav: t|k|1 partial favnums: 1, fav: t|k|2 partial favnums: 2,1, fav: t|k|3 partial favnums: 3,2,1, fav: t|k|4 partial favnums: 4,3,2,1, fav: t|k|5 partial favnums: 5,4,3,2,1, fav: t|k|6 partial favnums: 6,5,4,3,2,1, fav: t|k|7 partial favnums: 7,6,5,4,3,2,1, fav: t|k|8 partial favnums: 8,7,6,5,4,3,2,1, fav: t|k|9 partial favnums: 9,8,7,6,5,4,3,2,1, fav: t|k|10 partial favnums: 10,9,8,7,6,5,4,3,2,1, fav: t|k|11 partial favnums: 11,10,9,8,7,6,5,4,3,2,1, fav: t|k|12 partial favnums: 12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|13 partial favnums: 13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|14 partial favnums: 14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|15 partial favnums: 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|16 partial favnums: 16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|17 partial favnums: 17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|18 partial favnums: 18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|19 partial favnums: 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|20 partial favnums: 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|21 partial favnums: 21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|22 partial favnums: 22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|23 partial favnums: 23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, fav: t|k|25 partial favnums: 25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, CORRECT COUNTER-based: final favnums: 25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1, ========================================