"data" is the key you used on line 4 of your JSON. In other words, $struct is a hash reference, $struct->{data} is the value corresponding to the "data" key in the referenced hash. It contains an array reference to which the code pushes the subhashes.
To get the output without ->pretty, just delete ->pretty from the code.
How is a database involved? What error are you getting? How do you interact with it?
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord
}map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
| [reply] [d/l] [select] |
what does data in $struct->{data} stands for?
$struct is a hash reference. data is an autovivified key in the referenced hash. (Update: The -> arrow operator is needed because $struct is a reference.) Each new hash reference built from each line of input read from an input file or from the __DATA__ handle (as in the example code) is push-ed to the value of this key.
Also Is it possible to use without pretty?
Did you try it? What happened? (Update: And what does the documentation say?)
Give a man a fish: <%-{-{-{-<
| [reply] [d/l] [select] |