#!/usr/bin/perl # Calculates the number of downloads of papers with and without journal # references. # Author: Ian Hickman use strict; my (%downloaded, @field); my ($paperfield, $papernumber, $paper); my ($jr, $nojr, $total)=(0, 0, 0); openpapers(); # loop through all downloads while( ){ @field=split; if( $field[6]=~/papers/ ){ $_=$field[6]; ($paperfield, $papernumber)=/\/ftp\/(.*)\/papers.*(\d{7})/; } else { $_=$field[6]; ($paperfield, $papernumber)=/\/.*\/(.*)\/\??(\d{7})/; } $paper=$paperfield."/".$papernumber; if( exists( $downloaded{$paper} ) ){ $jr++; } else { $nojr++; } } print"jr\t$jr\tno\t$nojr\n"; print" total with jr is $total\n"; # load all papers with journal references sub openpapers { open( IN, "../q1/d_paperswithjr" ) || die"Cant open: $!"; while( ){ @field=split; $downloaded{$field[2]}=0; $total++; } close( IN ) || die"Cant close: $!"; }