I want an option in references where I can print out either one line or an element of the line using the -> notation.
Perl doesn't have the facility to index into strings by word. Or by char.
You will either have to store each line as a string, and then split it when you want to access individual words:
@AofLines = ( 'this is line one', 'this is line two' );; pp \@AofLines;; [ "this is line one", "this is line two" ] print $AofLines[ 0 ];; this is line one print +( split ' ', $AofLines[ 1 ] )[ 3 ];; two
Or you store each line as an array of words, and the you will need to join them together to get the line back:
@AofAofWords = ( [ qw[this is line one] ], [ qw[this is line two] ] ); +; pp \@AofAofWords;; [ ["this", "is", "line", "one"], ["this", "is", "line", "two"] ] print $AofAofWords[ 0 ][ 3 ];; one print join ' ', @{ $AofAofWords[ 1 ] };; this is line two
Which is better for your application will depend upon whether you need to access the words or lines most frequently.
In reply to Re^3: A question on array references.
by BrowserUk
in thread A question on array references.
by perl514
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |