Vraag : Kan van geen DBI.pm in @INC de plaats bepalen

Hallo,

I am hieronder is geplande taken (cron) in plesk proberen te gebruiken om een dagelijkse herinnering naar een e-mailadres voor verjaardagen in mijn bureau te verzenden, code
The, wanneer het ik ertoe brengt de volgende fout message.

Can niet van DBI.pm in @INC loopt de plaats bepalen (@INC bevat: C: /Program dossiers/Parallellen/Plesk/Additional/Perl/lib C: /Program dossiers/Parallellen/Plesk/Additional/Perl/site/lib.) bij C:\inetpub\vhosts\httpdocs \ testserver \ email2.pl ontbroken lijn 4.
BEGIN--de compilatie bij C:\inetpub\vhosts\httpdocs \ testserver \ email2.pl lijn 4.

I wordt geaborteerd heeft gecontroleerd om te zien of is DBI geïnstalleerdm gebruikend het bevel perl - MCPAN - e „geïnstalleerde DBI“

I krijgt de reactie DBI is bijgewerkte (1.611)

Can die u gelieve te helpen?
" codeBody "
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
#! /usr/local/bin/perl  

strikt gebruik;
gebruik DBI;
gebruiks CGI;
het gebruik BOOTST: na: Lite;

gebruik POSIX qw (strftime);
mijn $mmddyyyy = strftime („%m/%d/%Y“, localtime);
mijn $mm = strftime („%m“, localtime);
mijn $dd = strftime („%d“, localtime);
mijn $yy = strftime („%Y“, localtime);

 # Ga Gegevensbestand info in
 mijn $USERNAME = „888“;
 mijn $PASSWORD = „888“;
 mijn $DATABASE = „888“;

mijn $dbh = DBI->connect („dbi: mysql: $DATABASE: localhost: 3306“, „$USERNAME“, „$PASSWORD“);

# als identiteitskaart int. is, dit zou moeten zijn „identiteitskaart = 0“ maar als het een klusje of varchar is, is het correct
mijn $settings1 = $dbh->prepare („selecteer * uit montages WAAR identiteitskaart = „0““);  
$settings1->execute ();  

# aangezien u * selecteert die identiteitskaart moeten omvatten, maar u hebt geen identiteitskaart in deze lijst.
# Veronderstellend is het het eerste gebied in de rij, heb ik het toegevoegd
terwijl (mijn ($ID, $Path, $Ops_Email, $From_Email, $Subject, $Monthly_Email, $Email_Reminders) = $settings1->fetchrow_array ()) {

	# beweeg me als wij om het even wat niet doen
	tenzij daarna $Email_Reminders == 1 of $Monthly_Email == 1;

	# Dagelijks Herinneringen
	als ($Email_Reminders == 1) {

		# Zullen wij het begin en het eind van het lichaam toevoegen slechts als er vandaag om het even welke verjaardagen waren
		mijn ($dailycount, $body);
		$sth->execute ();
		terwijl (mijn ($Name, $Address, City, $State, $Postal, Country, $B_Date) = $sth->fetchrow_array ()) {  
			# Voeg aan $dailycount toe
			$dailycount++;

			# Krijg enkel het jaar van $B_Date door alles na het eerste streepje van de hand te doen
			(mijn $B_Year = $B_Date) =~ s/-.*//;
			mijn $age = $yy - $B_Year;

			$body. = „$Name (Draaien $age!)\ n“;

		}
		$sth->finish;
		$body. = „\ n“;

		# verzend geen als er niets zijn
		als ($dailycount > 0) {
			$body = <new (
				Van =>$From_Email,
				Aan =>$To_Email,
				Onderwerp =>$Subject,
				Gegevens =>$body
			);
			### verzend op de „beste“ manier (het gebrek moet gebruiken „sendmail“):
			$msg->send;
		}
	}
	# eind Dagelijkse Herinneringen 

	# Doe maandelijkse herinneringen als het eerste van de maand is
	als ($dd == 1) {
		################  
		# MONTHLYEMAIL #  
		################  

		# bereid de vraag voor  
		mijn $sthMonthly = $dbh->prepare („selecteer * uit teamdates WAAR `B_Date `ALS „%$mm%““);  

		# voer de vraag uit  
		$sthMonthly->execute ();  

		# Zullen wij het begin en het eind van het lichaam toevoegen slechts als er vandaag om het even welke verjaardagen waren
		mijn ($monthcount, $body);
		terwijl (mijn ($Name, $B_Date) = $sthMonthly->fetchrow_array ()) {
			$monthcount++;

			# Krijg enkel het jaar van $B_Date door alles na het eerste streepje van de hand te doen
			(mijn $B_Year = $B_Date) =~ s/-.*//;
			mijn $age = $yy - $B_Year;
			$body. = „$Name (Draaien $age2!) $B_Date \ n“;
		};  
		als ($monthcount) {

			## het Lichaam van de post  
			mijn $body = <new (
				Van =>$From_Email,
				Aan =>$Ops_Email,
				Onderwerp =>$Subject,
				Gegevens =>$body
			);
			### verzend op de „beste“ manier (het gebrek moet gebruiken „sendmail“):
			$msg->send;
		}
	}
}

Antwoord : Kan van geen DBI.pm in @INC de plaats bepalen

Hier is mijn favoriete truc om te bepalen waar Module.pm u wenst wordt gevestigd.

perl - MDBI - D - e0 en dan type V bij de debugger herinnering, bepalen de plaats dan van de module en van zijn bijbehorende weg:

Kijk hieronder voor een afschrift…


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
C:\Documents and Settings\jerome >perl - MDBI - D - e0

De routines van OB van de lading van perl5db.pl versie 1.3
Beschikbare de steun van de redacteur.

Ga h of „h h“ voor hulp, of „perldoc perldebug“ voor meer hulp in.

leiding:: (- e: 1):   0

  OB<1> v
1==>    0

  OB<1> V
$ = '
'
Van FileHandle (stderr) fileno => (2)
%SIG = (
   „ABRT“ => undef
   „ALRM“ => undef
   „ONDERBREKING“ => undef
   De CODE van de „BUS“ => (0x19e1504)
      - > &CODE (0x19e1504) binnen???
   „CHLD“ => undef
   „CLD“ => undef
   „Inh.“ => undef
   „FPE“ => undef
   „HUP“ => undef
   „ZIEKE“ => undef
   De CODE van „int.“ => (0x19beb34)
      - > &DB:: vangst in 0
   „DODEN“ => undef
   „NUM05“ => undef
   „NUM06“ => undef
   „NUM07“ => undef
   „NUM10“ => undef
   „NUM12“ => undef
   „NUM16“ => undef
   „NUM17“ => undef
   „NUM18“ => undef
   „NUM19“ => undef
   „NUM24“ => undef
   „PIJP“ => undef
   „OPGEHOUDEN met“ => undef
   De CODE van „SEGV“ => (0x19e1504)
      - > REUSED_ADDRESS
   „EINDE“ => undef
   „TERM“ => undef
   Readline van de „KRUK“ => „:: get_window_size“
   „__DIE“ CODE => (0x19e1934)
      - > &DB:: dbdie in 0
   „__WARN“ CODE => (0x19e1734)
      - > &DB:: dbwarn in 0
)
$^L = „cl \“
$^ = „OUT_TOP“
$$ = 16540
$ \ = ''
$ - = 0
@ - = (
   lege  groef 0
   1  lege groef
   lege  groef 2
)
$! = „Geen dergelijke dossier of folder“
$^X = „C:\ \ Perl \ \ bak \ \ perl.exe“
$^UNICODE = 0
$^V = v5.10.0
$= = 60
$2 = ''
$^WARNING_BITS = „\ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@ \ c@“
Van FileHandle (stdin) fileno => (0)
@INC = (
   0  „C: /Perl/site/lib“
   1  „C: /Perl/lib“
   2  „.“
)
%INC = (
   „ActivePerl/Config.pm“ => „C: /Perl/lib/ActivePerl/Config.pm“
   „ActiveState/Path.pm“ => „C: /Perl/lib/ActiveState/Path.pm“
   „AutoLoader.pm“ => „C: /Perl/lib/AutoLoader.pm“
   „C: /Perl/site/lib/sitecustomize.pl“ => „C: /Perl/site/lib/sitecustomize.pl“
   „Carp.pm“ => „C: /Perl/lib/Carp.pm“
   „Karper/Heavy.pm“ => „C: /Perl/lib/Carp/Heavy.pm“
   „Config.pm“ => „C: /Perl/lib/Config.pm“
   „Config_heavy.pl“ => „C: /Perl/lib/Config_heavy.pl“
   „Cwd.pm“ => „C: /Perl/lib/Cwd.pm“
   „DBI.pm“ => „C: /Perl/lib/DBI.pm“  <--------------------->
           
Andere oplossingen  
 
programming4us programming4us