Hey guys, I am using a Perl program to process DCOLLECT records from an input dataset that is 465 tracks. If I don't pre allocate enough tracks for the output dataset it fills up 100% at 61 tracks and 16 extents. After filling up the output dataset, the program keeps reading in input records and processing them, it just doesn't write out the output record. Because there are no errors or warning statements given, it gives the impression that everything executed like it should have when actually the output dataset only contains a fraction of the records that it should. Is there some way to make Perl (or mvswrite, or mvsopen?) throw an exception if it runs out of space for an output dataset but is still being asked to write to it. Or a way to ensure it dynamically allocates the amount of space it needs? Here is what I am doing in the code:
$infh = mvsopen("//'USERBTC.INPUT.LARGE'","rb,lrecl=105,recfm=FB,blksize=27930") or die $|; # This file is 465 tracks (240236 records) $match = mvsopen("//'USERBTC.OUTPUT.MATCH'","wb,lrecl=105,recfm=FB,blksize=27930") or die $|; # This file fills up at 61 tracks $RECSIZE = 105; for ($recnum = 0; read($infh, $record, $RECSIZE); $recnum++){ # Loop processes all 240236 input records mvswrite($match,$record,$RECSIZE); # but stops writing output after the 32452nd record } I appreciate any help or insight anyone may be able to give me on this. Thanks, Brandon Cooper Mainframe Admin | IT Operations Texas Instruments