Nowe posty

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

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 49
    • Zobacz profil
[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