Conditional z regexem, dla plików innych niż .jpg

Conditional z regexem, dla plików innych niż .jpg
CM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Mam w pliku tekstowym listę plików .jpg, .png itp.

chcę zrobić warunek, że jeśli plik jest różny od .jpg to wykonują się dalsze instrukcje

Kopiuj
if("$string" !~ m/jpg/)	
{ 
...
}

I tu mam problem, bo nawet w przypadku plików .jpg warunek jest true :/ Niestety nie jestem biegły w regexach ktoś wie jak to obejść? :)

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
0

W odpowiedzi zaznaczonej jako rozwiązanie masz jak wyrażeniem regularnym wyciągnąć rozszerzenie
https://stackoverflow.com/questions/2467016/is-there-a-regular-expression-in-perl-to-find-a-files-extension

CM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

No i mam ciekawy problem. Jeśli zrobię tak:

Kopiuj
my $string ="basjdasjdbksajkb.jpg";
my ($ext) = $string =~ /(\.[^.]+)$/;

if($ext !~ m/jpg/)	
{ 
...
}

no to działa ok, ale jeśli $string dam nazwę zczytaną z pliku tekstowego to dostaję błąd "Use of uninitialized value $ext in concatenation (.) or string". Co ciekawe printuje $ext i dostaję .jpg, więc skąd ten komunikat o niezaincjalizowanej zmiennej?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.