Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11484[/thread]

If Abfrage mit ähnlichkeitswert



<< >> 9 Einträge, 1 Seite
Gast Gast
 2008-03-18 13:12
#107182 #107182
Hallo leute ich weis ja wie man eine if abfrage macht und wie sie überprüft wird eq nq ..... aber wie mache ich es wenn ich z.b in der variable einen wert habe

z.b
$var = name.nachname <sonst was>;

und ich überprüfen will

if ($var == name.nachname"")

dann funktioniert das ja nicht weil er es ja exakt haben will. macht man sowas mit index?

ich hoffe ich hab mich deutlich ausgedrückt :D
renee
 2008-03-18 13:20
#107185 #107185
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ja, mit index kannst Du es machen:

Code (perl): (dl )
1
2
3
if( index( $var, 'name.nachname' ) == 0 ){
    print $var, " beginnt mit name.nachname\n";
}


index ist die beste Möglichkeit, aber man kann es auch mit Regulären Ausdrücken machen:

Code (perl): (dl )
1
2
3
if( $var =~ /^name\.nachname/ ){
    print $var, " beginnt mit name.nachname\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-03-18 13:26
#107188 #107188
index ist aber meistens schneller als der Regex, wenn es auf Geschwindigkeit ankommt.
renee
 2008-03-18 13:39
#107190 #107190
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Bei Regulären Ausdrücken mit Ankern ist der Geschwindigkeitsvorteil nicht mehr so wirklich groß...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2008-03-18 14:03
#107191 #107191
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
index ist nicht "meistens schneller". es kommt auf die aufgabenstellung und den input an.
bei folgendem code ist index langsamer:
Code: (dl )
1
2
"test" =~ m/^foo/
index("test", "foo")

da index immer bis zum ende des strings läuft.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Gast Gast
 2008-03-18 14:09
#107192 #107192
Danke für die schnelle Antwort


@ renee

Code: (dl )
1
2
3
if( index( $var, 'name.nachname' ) == 0 ){
print $var, " beginnt mit name.nachname\n";
}


das muss wohl >=0 heisen und nicht == 0?
sonst bekomm ich nämlich keine ausgabe ???
KurtZ
 2008-03-18 14:16
#107193 #107193
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
Gast+2008-03-18 13:09:40--
das muss wohl >=0 heisen und nicht == 0?
sonst bekomm ich nämlich keine ausgabe ???


Nein, das ist korrekt. Vielleicht hast du was anderes gemeint?
TMTOWTDYOG (there's more than one way to dig your own grave)
renee
 2008-03-18 14:32
#107194 #107194
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gast+2008-03-18 13:09:40--
das muss wohl >=0 heisen und nicht == 0?
sonst bekomm ich nämlich keine ausgabe ???


Wenn der Wert > 0 ist, dann ist der Substring nicht am Anfang des Strings, sondern irgendwo mittendrin.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
aspnstyle
 2008-03-18 16:23
#107209 #107209
User since
2008-03-18
23 Artikel
BenutzerIn
[default_avatar]
ahhh ... ok vielen dank für die erklärung genau das ist bei mir der fall
<< >> 9 Einträge, 1 Seite



View all threads created 2008-03-18 13:12.