Leser: 1
|< 1 2 >| | 12 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$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;
$string =~ s/(\$r->vor\;\n)+/vor\(ANZ\)\;\n/g;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/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);
$str=$`.'vor('.scalar(@{[split(/;\n/,$&)]}).");\n".$' while($str=~/(?:\$r->vor;\n){2,}/s);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl
# vi:ts=4 sw=4 et:
use strict;
use warnings;
my $str = <<'EOS';
$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;
EOS
my @elements = split( /\n/, $str );
my ( $last, $cnt ) = ( '', 0);
for my $i ( 0 .. $#elements ) {
if ( $elements[$i] ne $last and $i != 0 ) {
print $last, ( $cnt > 1 ? "($cnt)" : ''), $/;
$cnt=1;
$last = $elements[$i];
next;
}
$last = $elements[$i];
$cnt++;
}
print $last, $/;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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;
';
$str =~ s!((?:\$r->vor;?\n?){2,})! my $anz = () = $1 =~ m/(\$r->vor;?\n?)/sg; my $string = "vor(".$anz.");\n"!esg;
print $str;
$str =~ s|(?:\$r->vor;?\n?){2,}|'vor('.scalar(@{[split(/;\n/,$&)]}).");\n"|esg;
$str =~ s|((?:\$r->vor;?\n?){2,})|'vor('. @{[split(/;\n?/,$1)]} .");\n"|esg;
$str=$`.'vor('.scalar(@{[split(/;\n/,$&)]}).");\n".$' while($str=~/(?:\$r->vor;\n){2,}/s);
$content =~ s!(\$r->vor(;\n)){2,}!"vor(". @{[split(/;\n/, $&)]} .")$2"!eg;
$content =~ s!(\$r->vor(;\n)){2,}!"vor(". @{[split(/;\n/, $&)]} .")$2"!eg;
QuoteWeiterhin habe ich das s am Ende weggelassen, als ich es ans Ende gesetzt habe hat sich das Ergebnis nicht verändert.
Könnte mir bitte jemand erklären wofür das s da ist?
Und am Anfang habe ich ?: ebenfalls weggelassen, weil ich leider nicht weiß was es zu bedeuten hat. Das Ergebnis war, als ich es an den Anfang gesetzt habe aber auch richtig.
MfG PerlProfi
|< 1 2 >| | 12 Einträge, 2 Seiten |