Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: [Perl] if/else nie działa  (Przeczytany 4582 razy)

kapio

  • Gość
[Perl] if/else nie działa
« dnia: 2013-05-01, 23:06:37 »
Witam, mam pewien problem, a dokładnie w 1 miejscu (kawałek dalej jest podobny kod i działa) nie działa instrukcja if/else. Tak wygląda kod:

sub List {
        if( open( IN, "/var/www/text.xx" ) ){
                while( ){
                my($linia) = $_;
                        chomp;
                        print "x$linia";
                        if ($linia == "#!/usr") {
                        print "To jest /usr";
                        } elsif ($linia == "#!/var")  {
                        print "To jest /var";
                        } else {
                        print "Ani to ani to";
                        }

                }
                close( IN );
        }

}
Nie ważne czy powinno się wykonać if/elsif/else cały czas wyświetla:
To jest /usr
więc tylko i wyłącznie działa if, a dalej już nie chce iść :(
Jest to plugin do panelu ISPmanager. Kawałem dalej mam taki kod:
sub New {
        $elid = $Q->param( "elid" );
        $item = $Q->param( "item" );
                if ($item == "1") {
        if( open( ADD, ">/var/www/text.xx" ) ){
                print ADD "#!/usr";
                close( ADD );
                print "";
        } else {
                print "Item hasn`t been added";
        }
        } elsif ($item == "2") {
                if( open( ADD, ">/var/www/text.xx" ) ){
                print ADD "#!/var";
                close( ADD );
                print "";
        } else {
                print "Item hasn`t been added";
        }
        } else {
                print "UPS! Nic nie wiem. ";

        }

}
który działa prawidłowo natomiast ten pierwszy już nie chce. Z góry dziękuje za pomoc bo już próbowałem na kilka sposobów i zawsze to samo.

Edit:
Heh... Człowiek tak napiszę na forum i nagle coś do głowy wpadnie :)
==
zamieniłem na
eq
i działa. W perlu pierwszy raz piszę i mam przyzwyczajenia z BASH'a. Teraz już będę wiedział że
 == dla liczb
a
eq dla tekstu