我有以下最简单的 Perl CGI 脚本:
use strict;
use warnings;
use CGI();
use CGI::Carp qw(fatalsToBrowser);
use Template;
print CGI::header();
foreach(@INC) {
print "$_\n";
}
Run Code Online (Sandbox Code Playgroud)
当调用 ( http://[..]/cgi-bin/p.cgi ) 时,出现以下错误:
Can't locate Template.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /home/pistacchio/webapps/htdocs/cgi-bin/p.cgi line 8.
BEGIN failed--compilation aborted at /home/pistacchio/webapps/htdocs/cgi-bin/p.cgi line 8.
Run Code Online (Sandbox Code Playgroud)
我确保安装了模板,并且确实在从 shell 运行此程序时它可以工作(加载模板)并输出:
Content-Type: text/html; charset=ISO-8859-1
/home/pistacchio/lib/perl5
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
/home/pistacchio/lib/perl5/lib
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/5.8.8
Run Code Online (Sandbox Code Playgroud)
模板安装在 /home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
[pistacchio@web118 i386-linux-thread-multi]$ pwd
/home/pistacchio/lib/perl5/lib/i386-linux-thread-multi
[pistacchio@web118 i386-linux-thread-multi]$ …Run Code Online (Sandbox Code Playgroud) 如果您的值仅依赖于一个或多个其他字段+/-常数(例如零售价格和折扣价格),那么存储这些值或者在检索数据时"动态"计算它们会更好吗?
我可以将VB代码转换为C++吗?我该怎么做?
这是我的VB代码:
Dim OpenFileDialog1 As New OpenFileDialog
With OpenFileDialog1
.CheckFileExists = True
.ShowReadOnly = False
.Filter = "All Files|*.*|Bitmap Files (*)|*.bmp;*.gif;*.jpg"
.FilterIndex = 2
If .ShowDialog = DialogResult.OK Then
' Load the specified file into a PictureBox control.
PictureBox1.Image = Image.FromFile(.FileName)
End If
End With
Run Code Online (Sandbox Code Playgroud) 鉴于有限数量的项目有所不同,用堆叠的枚举和枚举构造函数表示它们还是将它们子类化更好?或者是否有更好的方法?
为了给你一些背景,在我的小RPG程序中(具有讽刺意味的是简单),角色在他或她的库存中有不同种类的物品.项目因类型,用途和效果而异.
例如,一个库存项目是一个名为Gremlin的拼写滚动,用于调整Utility属性.另一件物品可能是一把名为Mort的剑,用于战斗并造成伤害.
在我的RPG代码中,我现在尝试了两种表示库存项目的方法.一个办法是子类(例如,InventoryItem - >拼写 - > AdjustingAttributes; InventoryItem - >武器 - >剑)并在需要时实例化每个子类,以及诸如像的Gremlin和莫特名称分配值.
另一种方法是堆叠枚举和枚举构造函数.例如,我为itemCategory和itemSpellTypes以及itemWeaponTypes创建了枚举,而InventoryItem枚举是这样的:
public enum InventoryItem {
GREMLIN(itemType.SPELL, itemSpellTypes.ATTRIBUTE, Attribute.UTILITY),
MORT(itemType.WEAPON, itemWeaponTypes.SWORD, 30);
InventoryItem(itemType typeOfItem, itemSpellTypes spellType, Attribute attAdjusted) {
// snip, enum logic here
}
InventoryItem(itemType typeOfItem, itemWeaponTypes weaponType, int dmg) {
// snip, enum logic here
}
// and so on, for all the permutations of items.
}
Run Code Online (Sandbox Code Playgroud)
是否有比这两种方法更好的Java编程实践?或者,如果这些是唯一的方式,哪两个更好?提前感谢您的建议.
我在Windows 7上学习Ruby(使用版本1.8.6).
当我尝试运行下面的stock_stats.rb程序时,我收到以下错误:
C:\Users\Will\Desktop\ruby>ruby stock_stats.rb
stock_stats.rb:1: undefined method `require_relative' for main:Object (NoMethodE
rror)
Run Code Online (Sandbox Code Playgroud)
我有三个v.small代码文件:
stock_stats.rb
require_relative 'csv_reader'
reader = CsvReader.new
ARGV.each do |csv_file_name|
STDERR.puts "Processing #{csv_file_name}"
reader.read_in_csv_data(csv_file_name)
end
puts "Total value = #{reader.total_value_in_stock}"
Run Code Online (Sandbox Code Playgroud)
csv_reader.rb
require 'csv'
require_relative 'book_in_stock'
class CsvReader
def initialize
@books_in_stock = []
end
def read_in_csv_data(csv_file_name)
CSV.foreach(csv_file_name, headers: true) do |row|
@books_in_stock << BookInStock.new(row["ISBN"], row["Amount"])
end
end
# later we'll see how to use inject to sum a collection
def total_value_in_stock
sum = 0.0
@books_in_stock.each {|book| …Run Code Online (Sandbox Code Playgroud) 我可以与另一个共享一个应用程序相关数据.假设我在apk2的资源/原始文件夹中有一个音乐文件.我可以在apk1中使用相同的文件.
谢谢...
这就是我得到的:
protected override void OnStart(string[] args)
{
if (SomeApp.Initialize())
{
SomeApp.StartMonitorAndWork();
base.OnStart(args);
}
}
protected override void OnStop()
{
SomeApp.TearDown();
base.OnStop();
}
Run Code Online (Sandbox Code Playgroud)
这里Initialize读取一个配置文件,如果有错,那就没什么可做的,所以服务应该停止!如果配置正常StartMonitorAndWork启动:
Timer(new TimerCallback(DoWork), null, startTime, loopTime);
Run Code Online (Sandbox Code Playgroud)
和DoWork定期轮询数据库.
如果Initialize失败(我检查日志文件),我尝试从管理工具 - >服务停止服务,我得到:
Could not stop the SomeService on Local Computer. The service did not return an error. This could be internal Windows error or an internal service error. If the problem persists, contact system administrator.
The question is: "Is exiting OnStart without doing nothing enough if Initialize returns false?
或者应该有这样的事情: …
有没有一种yield在Ruby中模拟的好方法?我有兴趣在Ruby中编写类似的"无限fib序列".
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
namespace cs2 {
class Program {
static void Main(string[] args) {
var i=Fibs().TakeWhile(x=>x < 1000).Where(x=>x % 2==0).Sum();
}
static IEnumerable<long> Fibs() {
long a = 0, b = 1;
while (true) {
yield return b;
b += a;
a = b - a;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果有可能,请举个例子.
因此,我尝试将我的项目从Windows XP上的先前版本移至Windows 7上的Visual C++ Express 2010.我找到了各种各样的错误,其中找不到atlbase.h.这不是一个问题,但我想记录我的解决方案对其他人的意义.
从我之前的安装中复制以下PlatformSDK文件并将它们放在我的Windows 7计算机上.
PlatformSDK /包括/ ATL
PlatformSDK /包括/ MFC
PlatformSDK/lib目录
PlatformSDK/src目录/ ATL
然后,我将项目属性中的VC++目录更改为指向这些目录.
包括目录 -
*包括/ ATL
*包括/ MFC
图书馆目录 -
*LIB
来源目录 -
*SRC/ATL
对stdafx.h进行更改
就在这一行之后:#include"atlbase.h"
添加以下行:extern CComModule _Module;
希望你现在准备好了!可能不是,但也许你在路上很顺利.
我想将一个int数组复制到另一个int数组.它们使用相同的长度定义,因此它们总是具有相同的长度.
memcpy()的size参数的以下两个替代方法的优缺点是什么?
memcpy(dst, src, ARRAY_LENGTH*sizeof(int));
Run Code Online (Sandbox Code Playgroud)
要么
memcpy(dst, src, sizeof(dst));
Run Code Online (Sandbox Code Playgroud)
第二种选择总能奏效吗?无论内容如何?
有利于最后一件事的一件事是,如果阵列要改变,那么更新memcpy()将是一些内容管理.
谢谢