--- nfo/perl/libs/libp.pm 2002/06/24 14:49:59 1.1 +++ nfo/perl/libs/libp.pm 2002/07/19 18:13:50 1.3 @@ -1,8 +1,14 @@ ################################# # -# $Id: libp.pm,v 1.1 2002/06/24 14:49:59 cvsjoko Exp $ +# $Id: libp.pm,v 1.3 2002/07/19 18:13:50 cvsjoko Exp $ # # $Log: libp.pm,v $ +# Revision 1.3 2002/07/19 18:13:50 cvsjoko +# no message +# +# Revision 1.2 2002/06/27 02:14:22 cvsjoko +# + stripHtml stripSpaces stripNewLines toReal +# # Revision 1.1 2002/06/24 14:49:59 cvsjoko # + new # @@ -14,9 +20,13 @@ require Exporter; @ISA = qw( Exporter ); @EXPORT = qw( - Dumper - md5 md5_hex md5_base64 - ParseDate UnixDate + Dumper + md5 md5_hex md5_base64 + ParseDate UnixDate + strftime + stripHtml stripSpaces stripNewLines toReal trim + croak + array_getDifference ); use strict; @@ -28,4 +38,93 @@ $main::TZ = 'GMT'; use Date::Manip; +require LWP::UserAgent; +use HTML::PullParser; + +# $now_string = strftime "%a %b %e %H:%M:%S %Y", localtime; +# see "perldoc -f localtime" +use POSIX qw(strftime); + +use Carp; + + +######################################## + +sub stripSpaces { + my $text = shift; + #print "text: $text", "\n"; + #print "ord: ", ord(substr($text, 0, 1)), "\n"; + $text =~ s/^\s*//g; + $text =~ s/\s*$//g; + return $text; +} + +sub trim { + my $string = shift; + return stripSpaces($string); +} + +sub stripNewLines { + my $text = shift; + #print "text: $text", "\n"; + #print "ord: ", ord(substr($text, 0, 1)), "\n"; + $text =~ s/\n//g; + #$text =~ s/\s*$//g; + return $text; +} + +sub toReal { + my $string = shift; + $string =~ m/(\d+\.*\d+)/; + my $real = $1; + return $real; +} + +sub stripHtml { + my $html = shift; + my $result = ''; + #$html =~ s/
(.*)/ - ($1)/i; + my $p = HTML::PullParser->new( + doc => \$html, + text => 'text', + unbroken_text => 1, + ); + while (my $token = $p->get_token()) { + my $text = join('', @{$token}); + $result .= $text; + } + #$result =~ s/ //g; + return $result; +} + +sub array_getRelations { + my $a_ref = shift; + my $b_ref = shift; + my @a = @{$a_ref}; + my @b = @{$b_ref}; + + my @isect = my @diff = my @union = (); + my $e; + my %count; + + foreach $e (@a, @b) { $count{$e}++ } + + foreach $e (keys %count) { + push(@union, $e); + push @{ $count{$e} == 2 ? \@isect : \@diff }, $e; + } + + my $result = { + union => \@union, + isect => \@isect, + diff => \@diff, + }; + +} + +sub array_getDifference { + my $res = array_getRelations(shift, shift); + return $res->{diff}; +} + 1;