Perl:
my (%record) = ();
$record{'id'} = 419;
$record{'time'} = time();
$record{'name'} = "Quentin";
C:
struct record
{
int id;
time_t time;
char name[8];
} a_record;
a_record.id = 419;
a_record.time = time();
strcpy (a_record.name, "Quentin");
####
my (%record) = ();
my ($packed_record);
my ($packed_record_size) = 4+4+8;
# Open the file and read a single record out of it.
open (FILE, "$data_file");
read (FILE, $packed_record, $packed_record_size);
close (FILE);
# Unpack the record to decode it
($record{'id'},$record{'time'},$record{'name'})
= unpack ("lla8", $packed_record);
# Make a change
$record{time} = time;
$packed_record = pack ("lla8", $record{'id'},$record{'time'},$record{'name'});
open (FILE, ">$data_file");
print $packed_record;
close (FILE);
##
##
'Q' 'u' 'e' 'n' 't' 'i' 'n' \x00