#!/usr/bin/perl -w use strict; use IO::File; use GMS; require "GMSConstant.pl"; use Benchmark qw(cmpthese); my $t1 = '1'; my $t2 = '2'; my $t3 = '3'; my $GMS = new GMS; my $sitename = $GMS->getsetting('GUILD','SITENAMET'); my($name,$email,$icq) = ('Iron','flame@berkshire.rr.com','16307443'); my @stats = (100,100,25); my $skills = [ {'SKILL' => 'Anatomy','VALUE' => 100}, {'SKILL' => 'Swordsmanship','VALUE' => 100}, {'SKILL' => 'Tactics','VALUE' => 100} ]; my $onotes = "This is a long test string.\n\n" x 30; my $notes; sub otherway{ $notes = $onotes; #Re-Initialize variable since it was wiped out by the write() my $fh = IO::File->new_tmpfile() or die $!; $fh->format_name('GMMAIL'); #This one works regardless of which format it's attached to. select($fh); write(); seek($fh, 0, 0); # Rewind the file my $str = do {local $/; <$fh>}; select(STDOUT); print $str; } sub myway{ $notes = $onotes; #Re-Initialize variable since it was wiped out by the write() pipe(TESTOUT,TEST) or die($!); select(TEST); $~='GMMAIL'; #Note THIS Line: When set to 'TEST' everything's fine... #however, when set to GMMAIL like this, it locks up. #What's the difference that causes it to work for one but #not the other? $|=1; write(); close(TEST); select(STDOUT); my @temp = ; print join('',@temp); close(TESTOUT); } cmpthese(10000,{ 'Suggestion' => \&otherway, 'MyTest' => \&myway} ); format TEST= @||| @||| @||| $t1,$t2,$t3 @||| @||| @||| $t3,$t2,$t1 . format GMMAIL= @|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| "$sitename - Application" Name: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | Notes: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $name, $notes E-Mail: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<< | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $email, $notes ICQ: @<<<<<<<<<< | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $icq, $notes ---------------------------------------| ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes /------\ | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes | Stats | | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes |--------| | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes |@<<: @>>| | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $GMS::Constant::STATS[0],$stats[0], $notes |@<<: @>>| | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $GMS::Constant::STATS[1],$stats[1], $notes |@<<: @>>| | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $GMS::Constant::STATS[2],$stats[2], $notes \------/ | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes ---------------------------------------| ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes Skills | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes ------ | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes @<<<<<<<<<<<<<: @###.# | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $skills->[0]->{'SKILL'},$skills->[0]->{'VALUE'}, $notes @<<<<<<<<<<<<<: @###.# | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $skills->[1]->{'SKILL'},$skills->[1]->{'VALUE'}, $notes @<<<<<<<<<<<<<: @###.# | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $skills->[2]->{'SKILL'},$skills->[2]->{'VALUE'}, $notes ~~ | ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $notes @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> $GMS->getsetting('FILE','CGIBINS').'/join.cgi?admin' .