Datenterrorist
Jump to navigation
Net::ARP 1.0.3
Changelog:
Fixed possible buffer overflow in get_mac_linux()
FreeBSD 7 amd64 patches by mitsuru@riken.jp
Click
Net::ARP 1.0.2
Net::ARP 1.0.2 ist raus mit Bugfixes für FreeBSD 7.
Click
Net::ARP 1.0.1
Es gibt ne neue Version des Perl Moduls Net::ARP auf CPAN, die nen Segfault auf 64 Bit CPUs fixed.
HF &&
Click
Perl 6
"Perl 6 will soon be here. How will programming in Perl 6 be different from programming in Perl 5 for your average Perl programmer? The answer is: very different yet very much the same. A Perl 6 program viewed at arm's length will look much like a Perl 5 program viewed at arm's length. Programming in Perl 6 will still feel like programming in Perl. What will change however, is that Perl 6 will enable programmers to be more expressive by giving them more tools to work with (making easy things easy) and allowing them to be more precise in their expressions."
Read
Perl.com article
"Perl 6 hat viele tolle Features (oder wird sie haben, wenn es fertig ist:
Rules, die Nachfolger von Regular Expressions, erlauben das automatische Parsen ganzer Grammatiken
Ein ausgefeiltes Objektmodell mit Mehrfachvererbung, Roles und vielem mehr
Einfache Interaktion mit anderen Programmiersprachen
Einfache Handhabung von Unicode-Strings
Einfach zu lernen, da man auch mit einer Teilmenge der Sprache schon sehr weit kommt.
Komplette Unicode-Unterstützung"
Perl 6 jetzt ausprobieren mit v6 Module ala
Perl-6.de oder mit PUGS via
diveintoperl6.blogspot.com
Oder noch einfacher mit
PUGS im Browser
Last but not least für die lesefaulen ein
Podcast zum Thema Learning Perl6
Refactoring in Perl
Ich beschäftige mich derzeit mit Refactoring Techniken in Perl und hier mal ein paar brauchbare Links:
Test::More Tutorial
Refactoring by Example
Extreme Perl / Unit Testing
Extreme Perl / Refactoring
Net::ARP Version 1.0 ist raus!
Ha! Mein erstes Open Source Projekt, das es auf die 1.0 Version schafft!
Das alte Modul wurde grundlegend überarbeitet, eine neue Test Suite, die auf illegalen Input validiert, hat geholfen einige Fehler zu fixen und die wohl wichtigste Neuerung ist die Änderung der Schnittstellen für arp_lookup() und get_mac().
Der Rückgabewert wird hier nicht mehr als Parameter übergeben und modulintern manipuliert, sondern als Rückgabewert geliefert, um die Handhabung klarer und perlischer zu gestalten.
Ansonsten wird das Net::Pcap nicht mehr vorrausgesetzt, um die Tests zu bestehen und der Source des Moduls befindet sich in einem
Monotone Repository.
Falls also wer Lust hat Code beizusteuern... Feel free and drop me a mail! ;)
Click
Using Java Classes in Perl
"The key to using JCR from Perl is Inline::Java. This library allows a Perl program to call Java methods with very little effort. For an introduction to Inline::Java, I suggest starting where I did, Phil Crow's 2003 Bringing Java into Perl article on Perl.com about Inline::Java. I also relied heavily upon the documentation for Inline::Java, which is very complete, if not exhaustive.
To get started on using the JCR, I used the reference implementation, Jackrabbit. [...]"
Click
CPAN::Forum
Zum
CPAN gibt's nu auch nen Forum unter
http://www.cpanforum.com/.
Perl Exception Handling
Normalerweise benutzt man für Exceptions in Perl Klassen das Modul Carp.
Man sollte in Erwägung ziehen ebenfalls das Modul Fatal zu verwenden, damit können normale Perl Funktionen wie open() und close() automagisch Exceptions auslösen.
use Fatal qw(open close);
Zusätzlich sollte man Exception Klassen mit Hilfe von Exception::Class basteln.
Inside-Out objects
Meist werden Perl Objekte als blessed Hash Referenzen implementiert, diese Methode hat allerdings den Nachteil, dass Nutzer des Moduls in dessen Innereien rumfummeln können, Kapselung ist nicht mehr als Vertrauenssache.
Schluss damit!
Mit
Inside-Out Objekten bekommt der Nutzer nur noch eine Referenz auf einen anonymen Skalar. Die Attribute werden in Hashes innerhalb der Klasse gehalten und die Speicheradresse des Objekts dient als Key. So gibt's keine Möglichkeiten auf Interna zu zu greifen, weil es sie schlicht nicht gibt.
Das Modul Class::Std::Utils hilft hierbei z.B. mit anon_scalar() und ident().
Doku für Perl Projekte
cpan install Pod::ProjectDocs
Mit diesem Modul kann man seine POD Doku im CPAN Style (HTML basiert mit Suchfunktion) auf Knopfdruck erstellen.
Und so geht's:
#!/usr/bin/perl -w
use Pod::ProjectDocs;
use strict;
my $pd = Pod::ProjectDocs->new(
outroot => "doc/",
libroot => ".",
title => "Bluediving"
);
$pd->gen();
Advanced Perl
Ich habe mich heute mal auf die Suche gemacht, um meine Perl OOP Kenntnisse zu erweitern, hier die Links, die ich als sehr empfehlenswert erachte:
perlcast.com (insbesondere
practices-of-an-agile-developer)
planet.perl.org - Gesammelte Perl News als RSS Feed
perldesignpatterns.com
Tangram - Ein Object-Relational Mapper
Presto - An Object Oriented Database System for Perl
jifty.org - web application framework
Ansonsten kann ich noch das Modul Test::Unit zur testgetriebenen Entwicklung empfehlen.
Hat jemand Ergänzungen?
Chaotische Ausgabe
ls -al | perl -e '@a=; map{$i=int(rand($#a)); print $a[$i] . "\n"; delete $a[$i];} @a;'
Net::ARP Bugfixes
Mein Net::ARP Perl Modul ist mittlerweile bei Version 0.8 und das heutige Update fixed einen Segfault in der send_packet() Funktion, sowie behebt fehlerhafte Return Values der Funktionen get_mac() und arp_lookup() sowohl in der Linux als auch BSD Version.
Es wird geraten das Update einzuspielen und die Changes Datei zu lesen!
Click
Catalyst
"Catalyst is an elegant web application framework, extremely flexible yet extremely simple. It follows the Model-View-Controller (MVC) design pattern, allowing you to easily separate concerns, like content, presentation, and flow control, into separate modules."
Click