#!/usr/bin/perl use strict; use warnings; my $str= '$r->vor; $r->vor; $r->vor; $r->drehe_rechts; $r->vor; $r->vor; $r->drehe_links; $r->vor; $r->vor; $r->vor; $r->vor; $r->vor; drehe_um; $r->vor; '; my $cnt=0; my @arr=(); for my $i (split(/(?<=;\n)/,$str)) { push(@arr,$i) && next unless(@arr); if($arr[-1] eq $i && $i=~/\$r->vor;\n/) { $cnt++; } else { if($cnt) { $arr[-1]='vor('.($cnt+1).");\n"; $cnt=0; } push(@arr,$i); } } print join ('',@arr);