我有一个包含多个变量的类,其中一个是散列(_runs):
sub new
{
my ($class, $name) = @_;
my $self = {
_name => $name,
...
_runs => (),
_times => [],
...
};
bless ($self, $class);
return $self;
}
Run Code Online (Sandbox Code Playgroud)
现在,我要做的就是创建一个访问器/ mutator,以及另一个将新数据推入哈希的子例程.但我有一段时间让所有引用/解除引用/ $ self调用一起工作.我用"不能使用字符串("blah")作为HASH ref等等"烧毁我的眼睛"错误.
对于访问者来说,返回哈希的"最佳实践"是什么?我应该使用以下哪个选项(如果有的话)?:
return $self->{_runs};
return %{ $self->{_runs} };
return \$self->{_runs};
Run Code Online (Sandbox Code Playgroud)
此外,当我在类中的其他子例程中使用哈希时,我使用什么语法来复制它?
my @runs = $self->{_runs};
my @runs = %{ $self->{_runs} };
my @runs = $%{ $self->{_runs} };
my @runs = $$self->{_runs};
Run Code Online (Sandbox Code Playgroud)
迭代键是一样的:
foreach my $dt (keys $self->{_runs})
foreach my $dt (keys %{ $self->{_runs} })
Run Code Online (Sandbox Code Playgroud)
那么实际添加数据呢? …
我真的很喜欢http://www.honorshaven.com/看起来如何打印(到pdf).我仔细查看了源代码,试图找出他们是如何做到的(我的导航总是在打印时变成丑陋的子弹列表......) - 而且我很茫然.谁知道?任何帮助都是极好的!谢谢,马丁
[编辑]我熟悉打印样式表 - 但是它们大多不是通过"打印友好"/"打印我"链接来实现的吗?在这种情况下,我只是去浏览器栏并选择打印.我确定我错过了一些愚蠢的东西,但我不知道是什么......
我经常会grep -n whatev文件找到我正在寻找的东西.说输出是
1234: whatev 1
5555: whatev 2
6643: whatev 3
Run Code Online (Sandbox Code Playgroud)
如果我想在1234和5555之间提取线条,是否有工具可以做到这一点?对于静态文件,我有一个脚本,它执行文件的wc -l然后进行数学运算以使用tail和head将其拆分,但这对于不断写入的日志文件来说效果不佳.
任何人都可以提供一些有关如何以编程方式将HRESULT(http://en.wikipedia.org/wiki/HRESULT)值转换为人类可读消息的信息吗?
我知道实用程序ERR.EXE执行此操作,但我的应用程序需要向我的用户显示一些有意义的消息,而不是一个神秘的0x800A03EC.
我正在读期末考试,我偶然发现了一个奇怪的问题,这是我们老师去年给一些可怜的灵魂所做的考试的一部分.问题是这样的:
以下程序是否正确?如果是,请记下程序输出的内容.如果不是,请写下原因.
该程序:
#include<iostream.h>
class cls
{ int x;
public: cls() { x=23; }
int get_x(){ return x; } };
int main()
{ cls *p1, *p2;
p1=new cls;
p2=(cls*)malloc(sizeof(cls));
int x=p1->get_x()+p2->get_x();
cout<<x;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的第一直觉是回答"程序不正确,new
应该用来代替malloc
".但是,在编译程序并查看输出后,23
我意识到答案可能不正确.
问题是我期望p2->get_x()
返回一些任意数字(无论发生什么事情都在malloc
被调用的内存中).然而,它返回0.我不确定这是巧合还是类成员在malloc
-ed 时被初始化为0 .
p2->x
在0之后malloc
)是默认的吗?我应该预料到这一点吗?#include <stdlib.h>
了malloc
:P)我正在学习WPF并从这个 MSDN教程开始.
我只是按照教程.当我按照教程完成代码并尝试运行时,我在XAML页面中得到一个例外
'为'System.Windows.StaticResourceExtension'提供价值引发了一个异常.行号"27"和行位置"55".".内部异常显示错误是"找不到名为'personItemTemplate'的资源.资源名称区分大小写."
罪魁祸首XAML如下.
<Page x:Class="ExpenseIt.ExpenseItHome"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="321" d:DesignWidth="532"
Title="ExpenseIt - Home">
<Grid Margin="10,0,10,10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="230" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Column="1" Style="{StaticResource headerTextStyle}">View Expense Report</Label>
<!-- Resource List Label-->
<Border Grid.Column="1" Grid.Row="1" Style="{StaticResource listHeaderStyle}">
<Label VerticalAlignment="Center" Foreground="White" FontWeight="Bold">Names</Label>
</Border>
<!-- Resource List-->
<ListBox Name="peopleListBox" Grid.Column="1" Grid.Row="2"
ItemsSource="{Binding Source={StaticResource ExpenseDataSource}, XPath=Person}"
ItemTemplate="{StaticResource personItemTemplate}">
</ListBox>
<!-- View button -->
<Button Grid.Column="1" Grid.Row="3" …
Run Code Online (Sandbox Code Playgroud) 我有1000个专用的Java线程,每个线程每秒轮询一个相应的url.
public class Poller {
public static Node poll(Node node) {
GetMethod method = null;
try {
HttpClient client = new HttpClient(new SimpleHttpConnectionManager(true));
......
} catch (IOException ex) {
ex.printStackTrace();
} finally {
method.releaseConnection();
}
}
}
Run Code Online (Sandbox Code Playgroud)
线程每一秒运行一次:
for (int i=0; i <1000; i++) {
MyThread thread = threads.get(i) // threads is a static field
if(thread.isAlive()) {
// If the previous thread is still running, let it run.
} else {
thread.start();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我每隔一秒运行一次该作业,我会得到如下随机异常:
java.net.BindException: Address already in use …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本来自动为我自己的web服务器创建Apache和PHP的配置文件.我不想使用像CPanel或ISPConfig这样的任何GUI.
我有一些Apache和PHP配置文件的模板.Bash脚本需要读取模板,进行变量替换并将解析后的模板输出到某个文件夹中.最好的方法是什么?我可以想到几种方法.哪一个是最好的还是有更好的方法可以做到这一点?我想在纯Bash中做到这一点(例如在PHP中很容易)
template.txt:
the number is ${i}
the word is ${word}
Run Code Online (Sandbox Code Playgroud)
script.sh:
#!/bin/sh
#set variables
i=1
word="dog"
#read in template one line at the time, and replace variables
#(more natural (and efficient) way, thanks to Jonathan Leffler)
while read line
do
eval echo "$line"
done < "./template.txt"
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如何在此处将输出重定向到外部文件?如果变量包含引号,我是否需要逃避某些事情?
2)使用cat&sed替换每个变量的值:
给出template.txt:
The number is ${i}
The word is ${word}
Run Code Online (Sandbox Code Playgroud)
命令:
cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"
Run Code Online (Sandbox Code Playgroud)
对我来说似乎不好,因为需要逃避许多不同的符号,并且对于许多变量,这条线太长了.
你能想到其他一些优雅而安全的解决方案吗?
是的,这是一个家庭作业问题,所以请给我一个很好的解释!:)
无论如何,这就是我需要做的事情:
我需要有一个类,它将在其属性中包含另一个类的对象数组.在我看来,这样做的正确方法是使用LinkedList,Vector或类似的东西.不幸的是,上次我这样做的时候,我从教授那里得到了火和硫磺,因为根据他的信念,我使用的是先进的东西,却没有理解基础知识.
现在,下一个明显的解决方案是创建具有固定数量元素的数组,并添加检查以获取和设置,这将查看数组是否已满.如果它已满,它们将创建新的更大的数组,将旧数组的数据复制到新数组并将新数组返回给调用者.如果它基本上是空的,它们会创建新的较小数组并将数据从旧数组移动到新数组.对我来说,这看起来有点愚蠢.对于我的作业,阵列中可能不会有更多的3个元素,但我想制作一个可扩展的解决方案,而无需手动计算有关阵列填充频率的统计数据,添加的新元素的平均数量是多少,然后使用计算结果计算新数组中的元素数量等.
顺便说一句,没有必要从数组的中间删除元素.
有小费吗?
一些方法已被Rails3弃用.特别是以下电话就是这种情况!
Error.find(:all, :select => 'DISTINCT type')
Run Code Online (Sandbox Code Playgroud)
有人有想法,如何将此调用转换为ActiveRecord3有效语句?
我在网上什么都没发现......
谢谢