And without using the @LAST_MATCH_START variable, because I thought it was an evil which tainted any other regex used in the program (though I may be completely mistaken in this)
perl -Mstrict -we 'my $string="random\ttab\tseparated\twords";
sub tab2space{my ($string,$spacing)=@_;
while($string=~/\\t/){
print $string,"\n";
my $index=index($string,"\\t");
$string=~s/\\t/" " x ($index %8)/e;
}
return $string}
for (0..80){print $_ % 10;}
print "\n", tab2space($string) , "\n";'
0123456789012345678901234567890123456789012345678901234567890123456789
+01234567890
random tab separated words
print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."