Astro-FITS-CFITSIO

 view release on metacpan or  search on metacpan

testprog/testprog_OO.pl  view on Meta::CPAN

$fptr->delete_key('DATE',$status);

print "\nAfter deleting the keywords...\n";
for ($ii=$keynum; $ii<=$keynum+1;$ii++) {
	$fptr->read_record($ii,$card,$status);
	print $card,"\n";
}

$status and print "ERROR deleting keywords\n";

############################
#  insert keywords         #
############################

$keynum += 4;
$fptr->insert_record($keynum-3,"KY_IREC = 'This keyword inserted by fxirec'",$status);
$fptr->insert_key_str('KY_IKYS',"insert_value_string", "ikys comment", $status);
$fptr->insert_key_lng('KY_IKYJ',49,"ikyj comment", $status);
$fptr->insert_key_log('KY_IKYL',1, "ikyl comment", $status);
$fptr->insert_key_flt('KY_IKYE',12.3456, 4, "ikye comment", $status);
$fptr->insert_key_dbl('KY_IKYD',12.345678901234567, 14, "ikyd comment", $status);
$fptr->insert_key_fixflt('KY_IKYF',12.3456, 4, "ikyf comment", $status);
$fptr->insert_key_fixdbl('KY_IKYG',12.345678901234567, 13, "ikyg comment", $status);

print "\nAfter inserting the keywords...\n";
for ($ii=$keynum-4; $ii<=$keynum+5;$ii++) {
	$fptr->read_record($ii,$card,$status);
	print $card,"\n";
}

$status and print "ERROR inserting keywords\n";

############################
#  modify keywords         #
############################

$fptr->modify_record($keynum-4,'COMMENT   This keyword was modified by fxmrec', $status);
$fptr->modify_card('KY_IREC',"KY_MREC = 'This keyword was modified by fxmcrd'",$status);
$fptr->modify_name('KY_IKYS','NEWIKYS',$status);
$fptr->modify_comment('KY_IKYJ','This is a modified comment', $status);
$fptr->modify_key_lng('KY_IKYJ',50,'&',$status);
$fptr->modify_key_log('KY_IKYL',0,'&',$status);
$fptr->modify_key_str('NEWIKYS','modified_string', '&', $status);
$fptr->modify_key_flt('KY_IKYE',-12.3456, 4, '&', $status);
$fptr->modify_key_dbl('KY_IKYD',-12.345678901234567, 14, 'modified comment', $status);
$fptr->modify_key_fixflt('KY_IKYF',-12.3456, 4, '&', $status);
$fptr->modify_key_fixdbl('KY_IKYG',-12.345678901234567, 13, '&', $status);

print "\nAfter modifying the keywords...\n";
for ($ii=$keynum-4; $ii<=$keynum+5;$ii++) {
	$fptr->read_record($ii,$card,$status);
	print $card,"\n";
}

$status and print "ERROR modifying keywords\n";

############################
#  update keywords         #
############################

$fptr->update_card('KY_MREC',"KY_UCRD = 'This keyword was updated by fxucrd'",$status);

$fptr->update_key_lng('KY_IKYJ',51,'&',$status);
$fptr->update_key_log('KY_IKYL',1,'&',$status);
$fptr->update_key_str('NEWIKYS',"updated_string",'&',$status);
$fptr->update_key_flt('KY_IKYE',-13.3456, 4,'&',$status);
$fptr->update_key_dbl('KY_IKYD',-13.345678901234567, 14,'modified comment',$status);
$fptr->update_key_fixflt('KY_IKYF',-13.3456, 4,'&',$status);
$fptr->update_key_fixdbl('KY_IKYG',-13.345678901234567, 13,'&',$status);

print "\nAfter updating the keywords...\n";
for ($ii=$keynum-4; $ii<=$keynum+5;$ii++) {
	$fptr->read_record($ii,$card,$status);
	print $card,"\n";
}

$status and print "ERROR modifying keywords\n";

$fptr->read_record(0,$card,$status);

print "\nKeywords found using wildcard search (should be 13)...\n";
$nfound = 0;
while (!$fptr->find_nextkey($inclist,2,$exclist,2,$card,$status)) {
	$nfound++;
	print $card,"\n";
}
($nfound == 13) or print("\nERROR reading keywords using wildcards (ffgnxk)\n"), goto ERRSTATUS;

$status=0;

############################
#  copy index keyword      #
############################

$fptr->copy_key($fptr,1,4,'KY_PKNE',$status);
$fptr->read_keys_str('ky_pkne',2,4,$inekey,$nfound,$status);
printf "\nCopied keyword: ffgkne:  %f, %f, %f\n", @$inekey;

$status and print("\nERROR in ffgkne $nfound, $status\n"),goto ERRSTATUS;

######################################
#  modify header using template file #
######################################

$fptr->write_key_template($template,$status) and
	print "\nERROR returned by ffpktp\n", goto ERRSTATUS;
print "Updated header using template file (ffpktp)\n";

############################
#  create binary table     #
############################

$tform = [ qw( 15A 1L 16X 1B 1I 1J 1E 1D 1C 1M ) ];
$ttype = [ qw( Avalue Lvalue Xvalue Bvalue Ivalue Jvalue Evalue Dvalue Cvalue Mvalue ) ];
$tunit = [ ( '', 'm**2', 'cm', 'erg/s', 'km/s', '', '', '', '', '') ];

$nrows = 21;
$tfields = 10;
$pcount = 0;

$fptr->insert_btbl($nrows,$tfields,$ttype,$tform,$tunit,$binname,0,$status);
print "\nffibin status = $status\n";
print "HDU number = ${\($fptr->get_hdu_num($hdunum))}\n";

$fptr->get_hdrpos($existkeys,$keynum,$status);



( run in 0.975 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )