Schrift
[thread]12313[/thread]

(Verständnis)Probleme mit verschachtelten foreach-Schleifen und If-Abfragen (Seite 2)

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Linuxer
 2008-08-08 20:29
#113255 #113255
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Ich setze auf die gleiche Hoffnung, auf die auch chomp() setzt, wenn ich $/ verwende [1].

Ich finde $/ angenehmer zu tippen als "\n"; und für einen kurzen Quickshot, wie ich ihn hier gepostet hatte, ist es mir zuviel Aufwand gewesen, $\ zu lokalisieren und zu initialisieren.
Wenn ich $\ nutze, dann innerhalb eines definierten Blocks. Damit das hier nicht bei jedem Schleifendurchlauf neu geschieht, hätt ich um die Schleifen herum nochmal einen eigenen Block definieren müssen, in dem die Schleifen stecken und vor den Schleifen $\ lokalisiert würde...

Daher der Einsatz des $/ an dieser Stelle.

Soviel also zu meinen Beweggründen. Jeder wie er's mag.

[1] Diese Hoffnung erspart es mir, vor jedem Einsatz von chomp zu prüfen, ob $/ auch den richtigen notwendigen Wert enthält. Bisher ging das bei mir gut...

[edit]: [1] hinzugefügt[/edit]
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
Linuxer
 2008-08-08 20:36
#113256 #113256
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
@Wurzel:
Du kannst auch die zwei greps innerhalb einer if-Abfrage prüfen:
(Ausserdem das zweifelhafte $/ entfernt)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/perl -w
use strict;

my @konsonants = qw( p b t d k g m n f v h ch l r s sch ts ds tsch dsch x ); #21
my @not_first  = qw( p b t d k g ); #6
my @not_second = qw( p b t d k g m n ts ds tsch dsch x ); #13

my $j = 0;
{
    local $\ = "\n"; # $/ vermieden; wer weiss, was da drin steckt ;o))

    foreach my $konso1 (@konsonants) {
        foreach my $konso2 (@konsonants) {
            next if ( $konso1 eq $konso2 );
            next if ( grep { $konso1 eq $_ } @not_first and grep { $konso2 eq $_ } @not_second );
            print $konso1, $konso2; # $\ wird angehangen
            $j++;
        }
    }

    print $j; # $\ wird angehangen
}

[/quote]
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2008-08-07 19:28.