Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: [Perl] if/else nie działa  (Przeczytany 4568 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