System error

error:  Can't call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.
context: 
... 
113:  my $self = shift(@_);
114:  my $query_nickname = shift(@_);
115:  my $query = shift(@_);
116: 
117:  $self->{"queries"}->{$query_nickname} = $self->{"db"}->prepare($query);
118: 
119:  return 1;
120:  }
121: 
... 
code stack:  /usr/local/lib/site_perl/SJG/Configuration/DB.pm:117
/usr/local/lib/site_perl/SJG/Configuration/DB.pm:89
/home/www/secure/ill/comps/illcal.mas:131
/home/www/secure/ill/ill.html:150
/home/www/secure/ill/index.html:4
/home/www/secure/ill/archive/dhandler:3
raw error






























Can't call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.


Trace begun at /usr/local/share/perl/5.14.2/HTML/Mason/Exceptions.pm line 125
HTML::Mason::Exceptions::rethrow_exception('Can\'t call method "prepare" on an undefined value at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117.^J') called at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 117
SJG::Configuration::DB::prepare('SJG::Configuration::DB=HASH(0x7ffb656f2090)', 'RESERVED', 'select name from qdata where qname=? and upload_date=?') called at /usr/local/lib/site_perl/SJG/Configuration/DB.pm line 89
SJG::Configuration::DB::sql('SJG::Configuration::DB=HASH(0x7ffb656f2090)', 'select name from qdata where qname=? and upload_date=?', 'illq', '2024-05-01') called at /home/www/secure/ill/comps/illcal.mas line 131
HTML::Mason::Commands::__ANON__('sqldate', '2024-05-06') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb656fb918)', 'sqldate', '2024-05-06') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'sqldate', '2024-05-06') called at /home/www/secure/ill/ill.html line 150
HTML::Mason::Commands::__ANON__('sqldate', '2024-05-06', 'illuminator', '^J^I^I^I<h1>May 6, 2024: <B><I>Shattered Pixel Dungeon</B></I></h1>^J^I^I^I<div>^M^J^IThere are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up <a href="https://shatteredpixel.com/shatteredpd/"><i><b>Shattered Pixel Dungeon</b></i></a> as soon as you can. It&#39;s a simple but addictive game that is easy to play but tough to master. My husband and I have become increasingly obsessed since downloading it to our phones a few weeks ago.&nbsp;</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^I<i><b>Shattered Pixel Dungeon</b></i> is based on <a href="https://en.wikipedia.org/wiki/Pixel_Dungeon"><i><b>Pixel Dungeon</b></i></a>, a roguelike game that came out in 2012. <i><b>Shattered Pixel Dungeon</b></i> retains the charm of the original, but builds on its predecessor with new music, new unlockable characters, new items, and plenty of other surprises. You start with the option of playing either a Fighter or a Mage. As you continue to play and earn achievements, you&#39;ll unlock the Rogue, the Huntress (my personal favorite), and the Duelist as options. Each dungeon level is procedurally generated, so you&#39;ll never play the same game twice. You will, however, face bosses like the Giant Ooze and the Tengu, and meet characters like the Sad Ghost and the Troll Blacksmith. My personal favorites are the various Shopkeepers that you encounter on different levels &ndash; the incongruity of visiting a fantasy convenience store after facing a deadly adversary makes me laugh every time. (The Shopkeepers themselves never seem terribly worried about their position. Who are they, and what do they know?)</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^IReady to test your skill? <i><b>Shattered Pixel Dungeon</b></i> is available on <a href="https://play.google.com/store/apps/details?id=com.shatteredpixel.shatteredpixeldungeon&amp;pli=1">Google Play</a> and the <a href="https://apps.apple.com/us/app/shattered-pixel-dungeon/id1563121109">App Store</a>, as well as <a href="https://store.steampowered.com/app/1769170/Shattered_Pixel_Dungeon/">Steam</a>, <a href="https://www.gog.com/game/shattered_pixel_dungeon">Gog.com</a>, <a href="https://shattered-pixel.itch.io/shattered-pixel-dungeon">Itch.io</a>, and <a href="https://github.com/00-Evan/shattered-pixel-dungeon/releases">GitHub</a>.&nbsp;</div>^M^J<p>^M^J^I-- <a href="mailto:katie@sjgames.com">Katie Duffy</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Shattered Pixel Dungeon', 'mobile', 0, 'description', 'There are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up Shattered Pixel Dungeon as soon as you can . . .') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb656c1628)', 'sqldate', '2024-05-06', 'illuminator', '^J^I^I^I<h1>May 6, 2024: <B><I>Shattered Pixel Dungeon</B></I></h1>^J^I^I^I<div>^M^J^IThere are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up <a href="https://shatteredpixel.com/shatteredpd/"><i><b>Shattered Pixel Dungeon</b></i></a> as soon as you can. It&#39;s a simple but addictive game that is easy to play but tough to master. My husband and I have become increasingly obsessed since downloading it to our phones a few weeks ago.&nbsp;</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^I<i><b>Shattered Pixel Dungeon</b></i> is based on <a href="https://en.wikipedia.org/wiki/Pixel_Dungeon"><i><b>Pixel Dungeon</b></i></a>, a roguelike game that came out in 2012. <i><b>Shattered Pixel Dungeon</b></i> retains the charm of the original, but builds on its predecessor with new music, new unlockable characters, new items, and plenty of other surprises. You start with the option of playing either a Fighter or a Mage. As you continue to play and earn achievements, you&#39;ll unlock the Rogue, the Huntress (my personal favorite), and the Duelist as options. Each dungeon level is procedurally generated, so you&#39;ll never play the same game twice. You will, however, face bosses like the Giant Ooze and the Tengu, and meet characters like the Sad Ghost and the Troll Blacksmith. My personal favorites are the various Shopkeepers that you encounter on different levels &ndash; the incongruity of visiting a fantasy convenience store after facing a deadly adversary makes me laugh every time. (The Shopkeepers themselves never seem terribly worried about their position. Who are they, and what do they know?)</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^IReady to test your skill? <i><b>Shattered Pixel Dungeon</b></i> is available on <a href="https://play.google.com/store/apps/details?id=com.shatteredpixel.shatteredpixeldungeon&amp;pli=1">Google Play</a> and the <a href="https://apps.apple.com/us/app/shattered-pixel-dungeon/id1563121109">App Store</a>, as well as <a href="https://store.steampowered.com/app/1769170/Shattered_Pixel_Dungeon/">Steam</a>, <a href="https://www.gog.com/game/shattered_pixel_dungeon">Gog.com</a>, <a href="https://shattered-pixel.itch.io/shattered-pixel-dungeon">Itch.io</a>, and <a href="https://github.com/00-Evan/shattered-pixel-dungeon/releases">GitHub</a>.&nbsp;</div>^M^J<p>^M^J^I-- <a href="mailto:katie@sjgames.com">Katie Duffy</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Shattered Pixel Dungeon', 'mobile', 0, 'description', 'There are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up Shattered Pixel Dungeon as soon as you can . . .') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'sqldate', '2024-05-06', 'illuminator', '^J^I^I^I<h1>May 6, 2024: <B><I>Shattered Pixel Dungeon</B></I></h1>^J^I^I^I<div>^M^J^IThere are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up <a href="https://shatteredpixel.com/shatteredpd/"><i><b>Shattered Pixel Dungeon</b></i></a> as soon as you can. It&#39;s a simple but addictive game that is easy to play but tough to master. My husband and I have become increasingly obsessed since downloading it to our phones a few weeks ago.&nbsp;</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^I<i><b>Shattered Pixel Dungeon</b></i> is based on <a href="https://en.wikipedia.org/wiki/Pixel_Dungeon"><i><b>Pixel Dungeon</b></i></a>, a roguelike game that came out in 2012. <i><b>Shattered Pixel Dungeon</b></i> retains the charm of the original, but builds on its predecessor with new music, new unlockable characters, new items, and plenty of other surprises. You start with the option of playing either a Fighter or a Mage. As you continue to play and earn achievements, you&#39;ll unlock the Rogue, the Huntress (my personal favorite), and the Duelist as options. Each dungeon level is procedurally generated, so you&#39;ll never play the same game twice. You will, however, face bosses like the Giant Ooze and the Tengu, and meet characters like the Sad Ghost and the Troll Blacksmith. My personal favorites are the various Shopkeepers that you encounter on different levels &ndash; the incongruity of visiting a fantasy convenience store after facing a deadly adversary makes me laugh every time. (The Shopkeepers themselves never seem terribly worried about their position. Who are they, and what do they know?)</div>^M^J<div>^M^J^I&nbsp;</div>^M^J<div>^M^J^IReady to test your skill? <i><b>Shattered Pixel Dungeon</b></i> is available on <a href="https://play.google.com/store/apps/details?id=com.shatteredpixel.shatteredpixeldungeon&amp;pli=1">Google Play</a> and the <a href="https://apps.apple.com/us/app/shattered-pixel-dungeon/id1563121109">App Store</a>, as well as <a href="https://store.steampowered.com/app/1769170/Shattered_Pixel_Dungeon/">Steam</a>, <a href="https://www.gog.com/game/shattered_pixel_dungeon">Gog.com</a>, <a href="https://shattered-pixel.itch.io/shattered-pixel-dungeon">Itch.io</a>, and <a href="https://github.com/00-Evan/shattered-pixel-dungeon/releases">GitHub</a>.&nbsp;</div>^M^J<p>^M^J^I-- <a href="mailto:katie@sjgames.com">Katie Duffy</a></p>^M^J^J^I^I^I<br clear="all">^J^I^I^I^J^I^I^I<p id="discussForum" style="float: right;"><a href="http://forums.sjgames.com/forumdisplay.php?f=92"><img src="http://www.sjgames.com/img/discuss-on-forums.png" alt="Discuss this post on the forums!" /></a></p>^J^I        ^J<!-- addthis -->^J^J<b><span style="float:left; padding:0 1%;">Share this post!</span></b>^J<div class="addthis_toolbox addthis_default_style" style="float:left;">^J    <a class="addthis_button_facebook" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_twitter" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_reddit" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_tumblr" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <a class="addthis_button_email" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon"></a>^J    <span class="addthis_separator">|</span>^J    <a class="addthis_button_expanded" addthis:url="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" addthis:title="Daily Illuminator: Shattered Pixel Dungeon">More</a>^J</div>^J^J<div style="margin: 5px 0; clear: left;">^J    <a href="http://secure.sjgames.com/ill/archive/May_06_2024/Shattered_Pixel_Dungeon" class="small">Permalink</a> &bull;^J    <a href="/ill/archive/" class="small">Archive</a> &bull;^J    <a href="/ill/illsotw/" class="small">Illuminated&nbsp;Site&nbsp;of&nbsp;the&nbsp;Week</a>^J</div>^J', 'pagetitle', 'Daily Illuminator: Shattered Pixel Dungeon', 'mobile', 0, 'description', 'There are a ton of great tabletop and digital roleplaying games out there, but sometimes you just want to enjoy some dungeon delving, monster slaying, and treasure hunting. If that sort of thing appeals to you, consider picking up Shattered Pixel Dungeon as soon as you can . . .') called at /home/www/secure/ill/index.html line 4
HTML::Mason::Commands::__ANON__('month', 'May', 'day', 06, 'year', 2024, 'u', 'Shattered_Pixel_Dungeon.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb63f2a848)', 'month', 'May', 'day', 06, 'year', 2024, 'u', 'Shattered_Pixel_Dungeon.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1302
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, 'month', 'May', 'day', 06, 'year', 2024, 'u', 'Shattered_Pixel_Dungeon.html') called at /home/www/secure/ill/archive/dhandler line 3
HTML::Mason::Commands::__ANON__('u', 'Shattered_Pixel_Dungeon.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Component.pm line 135
HTML::Mason::Component::run('HTML::Mason::Component::FileBased=HASH(0x7ffb63f074f8)', 'u', 'Shattered_Pixel_Dungeon.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1297
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 1292
HTML::Mason::Request::comp(undef, undef, undef, 'u', 'Shattered_Pixel_Dungeon.html') called at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 481
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 481
eval {...} at /usr/local/share/perl/5.14.2/HTML/Mason/Request.pm line 433
HTML::Mason::Request::exec('HTML::Mason::Request::ApacheHandler=HASH(0x7ffb635297c0)') called at /usr/local/share/perl/5.14.2/HTML/Mason/ApacheHandler.pm line 168
HTML::Mason::Request::ApacheHandler::exec('HTML::Mason::Request::ApacheHandler=HASH(0x7ffb635297c0)') called at /usr/local/share/perl/5.14.2/HTML/Mason/ApacheHandler.pm line 825
HTML::Mason::ApacheHandler::handle_request('HTML::Mason::ApacheHandler=HASH(0x7ffb634f7d98)', 'Apache2::RequestRec=SCALAR(0x7ffb61c3cc00)') called at (eval 29) line 8
HTML::Mason::ApacheHandler::handler('HTML::Mason::ApacheHandler', 'Apache2::RequestRec=SCALAR(0x7ffb61c3cc00)') called at -e line 0
eval {...} at -e line 0