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

    Yey, thanks I'm quite noobie as you know, can you comment a little bit? xD I hate just copy and paste the code if I cannot understand it..

      Can you start the commenting? Comment as much as possible about every line of the program