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