Wpis z mikrobloga

#perl #programowanie

my $zmienna;

if ($zmienna eq '') {
my $zmienna = 'costam';
print $zmienna; - zwroci costam
}
print $zmienna; - zwróci nic. bez "my" zwróci 1. jak zrobić żeby zwracało costam? co robię źle? czemu poza ifem zmienna mi się zeruje?
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Locked1986: Ale gdzie zwraca to jest jakaś funkcja?
I w warunku sprawdzasz niezdefiniowaną wartość, używaj strict i warnings. Tak samo drukujesz w ostatniej linii wartość niezdefiniowaną.
  • Odpowiedz
@raffal: jak użyje strict i warnings to nic nie działa, przy każdej mojej zmiennej jest błąd, jestem cienki w perlu, przerobiłem sobie inny kod, dużo w nim zrobiłem ucząc się wzrokowo jak inne rzeczy są napisane i tak to sobie działa, pewnie ucząc się wzrokowo przepisywałem kod razem z błędami które on posiadał, a potem je rozsiałem wszędzie:)
  • Odpowiedz
@Locked1986: Wkleiłem twój odizolowany przykład tutaj: http://goo.gl/vKu9fx. Print wewnątrz ifa wypisuje "costam" niezależnie od tego, czy przed $zmienna jest "my" czy nie. Jeżeli u ciebie wypisuje "1", to zależy to od jakiegoś kodu poza tym, co tu napisałeś. Poszukaj tam błędu, albo wklej tu większy fragment.
  • Odpowiedz