#Perl

wszystkie notatki oznaczone etykietą "Perl"

Skryptowanie Windowsa: Perl

Ostatnio musiałem popracować nad dyplomówką, przez co kolejny wpis o skryptowaniu windowsa się gdzieś zapodział i jego pojawienie się trochę opóźniło. Tym razem o pisaniu skryptów w moim ulubionym języku, czyli Perlu. W ostatniej notce poświęconej WSH wspominałem, że można bez problemu “podłączyć” dowolny silnik i korzystać z dowolnego języka do pisania swoich skryptów jak Perl, Python, Lips, czy cokolwiek innego. W przypadku naszego Perla sprawa wygląda o tyle prościej, że wystarczy skorzystać z modułu Win32::OLE i cieszyć się możliwościami jakie daje ta technika.

Czytaj dalej

Zmierzch Perl Golfa?

Ostatnio trochę zawrzało w społeczności Perla wokół tematu golfa i obfu. Szczególnie przez pojawiające się twierdzenia mówiące, że to właśnie perl golf jest w dużym stopniu powodem “narodzin” określenia: Perl is line noise. Jednym z najlepszych sposobów oczyszczenia wizerunku Perla, według Davida Goldena byłoby zaprzestanie zabaw z golfem i celowym zaśmiecaniem kodu, co próbował przedstawić na swoim blogu we wpisie Stop with the Perl golf already! Czy, aby na pewno porzucenie golfowania jest dobrym pomysłem?

Czytaj dalej

Try Perl!

Poprzez swoje kanały RSS trafiłem na dwa ciekawe wpisy o Perlu. Chromatic w wpisie YAGNI Badvocacy and the Perlian Knot porusza kwestie niektórych perlowych problemów. Ogólnie to ciężko się ustosunkować co do niektórych, dla jednych wada, dla innych zaleta. Choć prawdą pozostaje to, że Perl nie jest doskonały (czy cokolwiek jest?) i wiele rzeczy brakuje w 5 lub jest nieco spieprzonych. Na szczęście większość tych braków i niedogodności zniknie z 6-tki.

Czytaj dalej

We love Perl!

Perl, czyli “Practical Extraction and Report Language”, często też bywa rozwijany do “Pathologically Eclectic Rubbish Lister”. Ciężko jednoznacznie stwierdzić, które rozwinięcie nazwy jest bliższe rzeczywistości, ponieważ oba zostały zatwierdzone przez jego twórcę Larrego Walla. Zastanawiające może być to, dlaczego ludzie tak nie lubią i nienawidzą Perla? Do tego często niektorzy go wszystkim odradzają, szczególnie początkującym, na rzecz Pythona, który w ostatnich czasach zwiększył swoją popularność, chociaż nie jest on wcale takim młodym językiem.

Czytaj dalej

Interpunkcja ze spacjami

Drażni mnie jak niektórzy wstawiają spacje przed niektórymi znakami interpunkcyjnymi. Co oczywiście nie jest zgodne z zasadami gramatyki, semantyki, czy czegoś tam, w języku polskim i nie tylko. W pewnym projekcie, w którym obecnie pracuję, tłumacze właśnie mają małe zboczenie do wstawiania spacji przed “!” i innymi znakami. A zapewne kolegom deweloperom nie będzie się uśmiechała ręczna edycja plików. Dlatego “machnąłem” prościutki skrypcik w Perlu ;) #!/usr/bin/perl -pi.bak BEGIN { @ARGV or print "\nusage: .

Czytaj dalej

Obsługa routera w Perlu

Jako, że mój nowy router posiada interfejs www, nie wygodne jest momentami wykonanie kilku potrzebnych czynności, takich jak np. reset połączenia ADSL-owego. Trzeba uruchomić przeglądarkę, zalogować się, itd… zdecydowanie za dużo roboty. Dlatego napisałem sobie prosty skrypt w Perlu ułatwiający jego obsługę wprost z linii poleceń. Możliwości skryptu: C:\Documents and Settings\MalCom>perl c:\router.pl --help Prosta obsluga routera ADW-4301A firmy Planet router.pl [-c] [-d] [-st] [-cd] [-ad] -c Connect ADSL -d Disconnect ADSL -st Status -cd Connection Detalis -ad Attached Devices C:\Documents and Settings\MalCom> Podstawowe opcje, czyli połączenie i rozłączenie z Internetem, a także wyświetlanie kilku przydatnych informacji ;)

Czytaj dalej

Tlen przez jabberowego klienta

Tlen z dowolnego klienta Jabbera/XMPP bez transportów? Tak to możliwe ;) Wreszcie udało mi się doprowadzić do porządku ten paskudny kod - serwer proxy pisany w Perlu, i zmusić sockety do działania wedle mojego widzimisię. Ale ile to musiałem się namęczyć z modułem IO::Socket::INET, aby działał poprawnie na Linuksie i Windowsie, do tego jeszcze w trybie non-blocking z łatwym odbieraniem/wysyłaniem danych. Momentami myślałem, że wywalę głupie moduły i skorzystam z czystych socketów, albo w ogóle oleję skryptowe i napiszę w to w C++.

Czytaj dalej

GoogleCode Downloader v0.2

Poprawiłem mój perlowy skrypt GoogleCode Downloader. Ostatnio pobierając jakiś kod w źródłach znalazło się kilka tagów htmlowych. Być może google coś zmieniło, albo wtedy nie miałem okazji trafić na takie pliki. Przy okazji dorzuciłem usuwanie znaków nowej lini, bo zawsze kilka ich znajdowało się na końcu pliku. Changelog wersji 0.2: usuwanie tagów html z kodu źródłowego; usuwanie znaków końca linii z końca kodu źródłowego; W pewnych okolicznościach wystąpił jeszcze jeden, dosyć specyficzny błąd, ale nie mogłem go ponownie wywołać, więc nie został ostatecznie poprawiony.

Czytaj dalej

GoogleCode Downloader

Google Code jest jedną z kilku rzeczy, jakie naprawdę się udały temu monopoliście ;) Pewnie mieliście też taką sytuację, że znaleźliście ciekawy kod źródłowy bądź projekt przy pomocy tej wyszukiwarki. Tak Wam się spodobał, że bardzo zapragnęliście go posiadać. Próbujecie pobrać (przeważnie archiwum) z macierzystego serwera, gdzie owe pliki się znajdują i rozczarowanie - 404! Pod podanym adresem już nie znajdziecie tego, czego tak bardzo szukaliście. Smutek na twarzy się pojawia…

Czytaj dalej

MajIRC w Perlu?

Mam problem, potrzebuję na serwerze PHP działające jako CGI, a nie jako moduł Apache’a jak jest to do tej pory. Mam 2 wyjścia z tego problemu, albo reconfig serwera na Debianie, kompilacja źródełek lub coś tam jeszcze, żeby PHP ruszyło pod konsolą, albo przepisać fragmenty kodu, bramkę (majircs.php i dodatkową klasę) w Perlu… Chyba jednak wybiorę Perla :) Dawno miałem się zagłębić w ten język, teraz przynajmniej będzie większa motywacja, bo jest to (bramka majirc’a) potrzebne na już, żeby jak najszybciej uruchomić na serwerze MajIRC-a w wersji beta.

Czytaj dalej