Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^4: How do I go from procedural to object oriented programming?

by Lady_Aleena (Priest)
on May 05, 2015 at 05:31 UTC ( [id://1125670]=note: print w/replies, xml ) Need Help??


in reply to Re^3: How do I go from procedural to object oriented programming?
in thread How do I go from procedural to object oriented programming?

SimonPratt, I'm sorry I didn't get back to you sooner. I got distracted. If you want to see my actual data, it is here. I don't know what you used at the bottom of the script, however it looks like it is going to gobble up a lot of screen real estate when you consider I have nearly 2,400 movies' data collected, and there are the additional fields qw(format Wikipedia allmovie IMDb TV.com Flixter genre). I shudder to think of the amount of bytes it would take to store them the way you are. I stored 13 movies for the bytes you used for 6, and 42 in the same amount of lines.

I told you all that so you know I why I put the data in the same module as my subroutines. To keep storage so small, I have to do a fair amount of processing on each field. Even media gets processed. (If media is written like miniseries:5, miniseries is the media, 5 is the amount of parts it has and goes into $movie->{'counts'}{'episode'}. If I can't have the data in the same module as the subroutines, I will not be able to keep my storage sizes down.

For example, when processing $series and $franchises (2 hash refs processed after $movies), I need start_year and end_year.

There are a total of 7 hashes created in the actual module. If there were a way to keep them with the objects subroutines, I wouldn't have to drop the idea of using objects. As long as the data is not included, the module becomes useless to me. The actual module is all inclusive of everything which has to do with movies on my site which includes movies, series, franchises, genres, what I own, etc. Everything this module needs to handle is explained here.

No matter how hysterical I get, my problems are not time sensitive. So, relax, have a cookie, and a very nice day!
Lady Aleena

Replies are listed 'Best First'.
Re^5: How do I go from procedural to object oriented programming?
by SimonPratt (Friar) on May 05, 2015 at 14:48 UTC

    Hi, Lady_Aleena. No worries, I've been away for a while anyway.

    I had a nosey around your git repository when you first posted the link to it. I thought it was a bit strange that you had gone to so much effort in creating a custom data management interface, however if storage space is that much of a concern to you, then I totally get it :)

    __DATA__ effectively tells Perl that everything after that point should be made available through the DATA handle. You get the same effect by having everything below __DATA__ saved in an external file, then manually opening a filehandle called DATA in order to read the content.

    In your particular case, your data management interface should be re-worked to do all of the object building for you. So, instead of creating a bunch of hashes, then calling a set of functions to populate the hashes, you should be able to add your data library and create a new library object which would be populated with movie objects, which are all populated with the data contained in your raw files.

    Once this is working correctly, it doesn't matter how many scripts need access to this data, they can all simply load your data management library and ask it to give them a library of movies to use.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1125670]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (6)
As of 2024-04-25 08:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found