in reply to Write an user answer inside an array
As discussed in the CB, you'll need to store the contents outside of RAM, such as a file. The following code will bootstrap the file if necessary and query the user for feelings and how they feel. It uses FreezeThaw to store persistent data.
#!/usr/bin/env perl use strict; use warnings; use File::Slurp; use FreezeThaw qw( freeze thaw ); my $DB_FILE = 'questions.frozen'; unless (-e $DB_FILE) { open FH, '>', $DB_FILE; close FH; } my $data; eval { ($data) = thaw( read_file( $DB_FILE ) ) }; $data = {} if $@; print "How do you feel?"; chomp( my $feeling = <> ); if ($data->{$feeling}) { print "$feeling is a $data->{$feeling} feeling\n"; } else { print "I don't know about $feeling, is it good or bad?"; chomp( my $answer = <> ); $data->{$feeling} = $answer; } open FH, '>', $DB_FILE; print FH freeze $data; close FH;
I did not include error checking and i opted to use a hash instead of an array. Hope this helps!
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Write an user answer inside an array
by Eth443 (Initiate) on May 04, 2015 at 23:35 UTC | |
by Anonymous Monk on May 05, 2015 at 00:07 UTC |