Generated: Tue Feb 2 17:54:57 2010 from substr01.pl 2006/07/11 1.2 KB.
#!/Perl print "$0 ... Hello, World...\n"; my $line = 'Unix\http--rds.yahoo.com-_ylt=A0Je5EsJF3dE_ksAzOJXNyoA;_ylu=X3oDMTE2YWZxZzBjBGNvbG8DdwRsA1dTMQRwb3MDNQRzZWMDc3IEdnRpZANERlg1XzMw-SI'; my $nline = max_sub($line, 55); print $nline; exit(0); sub max_sub { my ($ln, $max) = @_; my $nln = $ln; if (length($ln) > $max) { my @arr = split(/ /,$ln); $nln = ''; my $bit = ''; my $bl = 0; my $sl = 0; my $sc = 0; foreach my $s (@arr) { $sl = length($s); $bl = length($bit); while ($sl > $max) { if ($bl) { $bit .= ' '; } $bit .= substr($s, 0, $max - $bl); $s = substr($s, $max - $bl); if (length($nln)) { $nln .= "<br>\n"; } $nln .= $bit; $bit = ''; $sl = length($s); $bl = length($bit); $sc = 0; } if ($bl) { if (( $bl + $sc + length($s) ) > $max ) { if (length($nln)) { $nln .= "<br>\n"; } $nln .= $bit; $bit = $s; $sc = 0; } else { $bit .= ' '; $sc++; $bit .= $s; } } else { $bit = $s; $sc = 0; } } if (length($bit)) { if (length($nln)) { $nln .= "<br>\n"; } $nln .= $bit; } } return $nln; }