|
源代码网推荐
代码: --------------------------------------------------------------------------------
sub upmemberdate { my $membernametemp = shift; my %userinfo = @_;
my $filetoopen = "$lbdir$memdir/$membernametemp.cgi"; if (-e $filetoopen) { open (FILE,$filetoopen); my $filedata=<FILE>; close(FILE); chomp $filedata; local ( $membername, $password, $membertitle, $membercode, $numberofposts, $emailaddress, $showemail, $ipaddress, $homepage, $oicqnumber, $icqnumber, $location, $interests, $joineddate, $lastpostdate, $signature, $timedifference, $privateforums, $useravatar, $userflag, $userxz, $usersx, $personalavatar, $personalwidth, $personalheight, $rating, $lastgone, $visitno, $addjy, $meili, $mymoney, $postdel, $sex, $education, $marry, $work, $born, $chatlevel, $chattime, $jhmp, $useradd3, $useradd4, $onlinetime, $userquestion, $useradd6, $useradd7, $useradd8) = split(/ /,$filedata); local($numberofposts,$numofreplys)=split(/|/,$numberofposts); foreach my $info (keys %userinfo) { if ($userinfo{$info}=~/^[+-][0-9]+$/) { $$info += $userinfo{$info}; } else { $userinfo{$info} =~ s/^\(-|+)/$1/; $userinfo{$info} =~ s/^\\/\/; $$info = $userinfo{$info}; } #print "$info $$info
"; } open(FILE,">$filetoopen"); print FILE "$membername $password $membertitle $membercode $numberofposts|$numberofreplys $emailaddress $showemail $ipaddress $homepage $oicqnumber $icqnumber $location $interests $joineddate $lastpostdate $signature $timedifference $privateforums $useravatar $userflag $userxz $usersx $personalavatar $personalwidth $personalheight $rating $lastgone $visitno $addjy $meili $mymoney $postdel $sex $education $marry $work $born $chatlevel $chattime $jhmp $useradd3 $useradd4 $onlinetime $userquestion $useradd6 $useradd7 $useradd8
"; close(FILE); } }
所传递的参数,第一个是所要写入的用户名,后面是一个哈希表,哈希表的关键字是要被改变的变量名,值是增减的值或被改为的值。 如果哈希表的值以 + - 开头,则是对相应的用户数据增减,否则就将相应的用户数据设为哈希表的值。 如果要将一个以 + - 开头的字串付给一个变量的话,就要用 对其进行一次转义,如果以 开头还要进行一次转义。 例如,将用户 test 的发贴数加1 ,威望设为 -6 ,可以这样调用过程。 &upmemberdate("test",numofposts,"+1",rating,"-6");
源代码网供稿. |