package WWW::SourceForge::User; use WWW::Mechanize; use vars qw($VERSION); $VERSION = '0.01'; sub new { my ($class,$pname) = @_; my $url = _userurl($pname); my $proj; my $wa = WWW::Mechanize->new( autochcheck => 1); $wa->get($url); my $content = $wa->content; my ($userId) = $content =~ m{User ID: \s+(\d+)}s; my ($realName) = $content =~ m{\s+Real Name: \s+(.+?)\s+}s; my ($email) = $content =~ m{Email Address: \s+\s+(.+?)\s+}s; $email =~ s/\s+at\s+/\@/; my ($prjinfo) = $content =~ m{

Project Info

(.+?)\s+\s+\s+\s+\s+   \s+\s+}s; my @projects; while ($prjinfo =~ m{
(.+?)}sg) { push @projects, $1; } my $sfu = { userId => $userId, realName => $realName, email => $email, projects => \@projects, }; return bless($sfu,$class); } # More user function here. sub UserId { return $_[0]->{userId};} sub RealName { return $_[0]->{realName};} sub Email { return $_[0]->{email}} sub Projects{ my $p = $_[0]->{projects}; return wantarray? @$p : $p; } # yawp! sub MakeDonation {} # privates sub _userurl { return "http://sourceforge.net/users/" . $_[0]; } "Wazaaaaahhh....";