X-Git-Url: https://code.th-h.de/?p=usenet%2Fnewsstats.git;a=blobdiff_plain;f=NewsStats.pm;h=35e0c90054fb136c153faafecd6c97a6c85ee96d;hp=a8c5b7b0d287429db7c9f747194cd4bc8a3fabfb;hb=78389b28e945178cad3f43a63e5d1091334e8dab;hpb=3430c898683771c0ecba9b53a55bb817da0e8fe8 diff --git a/NewsStats.pm b/NewsStats.pm index a8c5b7b..35e0c90 100644 --- a/NewsStats.pm +++ b/NewsStats.pm @@ -18,6 +18,7 @@ require Exporter; @EXPORT = qw( $MySelf $MyVersion + $PackageVersion ReadOptions ReadConfig OverrideConfig @@ -39,7 +40,8 @@ require Exporter; %EXPORT_TAGS = ( TimePeriods => [qw(GetTimePeriod LastMonth CheckMonth SplitPeriod ListMonth)], Output => [qw(OutputData FormatOutput)], SQLHelper => [qw(SQLHierarchies SQLGroupList GetMaxLenght)]); -$VERSION = '0.1'; +$VERSION = '0.01'; +our $PackageVersion = '0.01'; use Data::Dumper; use File::Basename; @@ -82,7 +84,7 @@ sub ReadOptions { sub ShowVersion { ################################################################################ ### display version and exit - print "$MyVersion\nCopyright (c) 2010 Thomas Hochstein \n"; + print "NewsStats v$PackageVersion\n$MyVersion\nCopyright (c) 2010 Thomas Hochstein \n"; print "This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself.\n"; exit(100); }; @@ -301,14 +303,27 @@ sub ListMonth { sub OutputData { ################################################################################ ### read database query results from DBHandle and print results with formatting -### IN : $Format : format specifier -### $DBQuery: database query handle with executed query, -### containing $Month, $Key, $Value +### IN : $Format : format specifier +### $FileName: file name template (-f): filename-YYYY-MM +### $DBQuery : database query handle with executed query, +### containing $Month, $Key, $Value ### $PadGroup: padding length for newsgroups field (optional) for 'pretty' - my ($Format, $DBQuery,$PadGroup) = @_; + my ($Format, $FileName, $DBQuery, $PadGroup) = @_; + my ($Handle, $OUT); + our $LastIteration; while (my ($Month, $Key, $Value) = $DBQuery->fetchrow_array) { - print &FormatOutput($Format, $Month, $Key, $Value, $PadGroup); + # set output file handle + if (!$FileName) { + $Handle = *STDOUT{IO}; # set $Handle to a reference to STDOUT + } elsif (!defined($LastIteration) or $LastIteration ne $Month) { + close $OUT if ($LastIteration); + open ($OUT,sprintf('>%s-%s',$FileName,$Month)) or die sprintf("$MySelf: E: Cannot open output file '%s-%s': $!\n",$FileName,$Month); + $Handle = $OUT; + }; + print $Handle &FormatOutput($Format, $Month, $Key, $Value, $PadGroup); + $LastIteration = $Month; }; + close $OUT if ($FileName); }; ################################################################################