我想从我创建的哈希中添加值.
my $value_count;
foreach my $key (@keys) {
$value_count = sum($words{key}, $value_count);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行这个时,我得到了
Undefined subroutine &main::sum called at C:/Users/Clayton/workspace/main/Main.pl line 54, <$filehandle1> line 174.
Run Code Online (Sandbox Code Playgroud)
我不确定我在哪里错了.我是Perl的新手.
编辑: 我尝试使用+运算符但我得到错误
Use of uninitialized value in addition (+) at C:/Users/Clayton/workspace/main/Main.pl line 54, <$filehandle1> line 174.
Run Code Online (Sandbox Code Playgroud)
几乎我的哈希就像Key Value cat 2 dog 4 rat 1
所以我正在尝试将所有值加起来,以便我可以取平均值.
编辑2: 实际的修复是在我需要使我的$ value_count = 0的评论中.这修复了一切.谢谢你们.我认为这是一个需要解决的重要问题,我认为这对其他人有用,所以我要离开它.
Exception in thread "main" java.util.ConcurrentModificationException
Squash the PC dirties the room Violet. The room's state is now dirty
Lily the animal growls
The Animal Lily left the room and goes to Green through the west door.
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at homework5.Room.critReactRoomStateChange(Room.java:76)
at homework5.PC.play(PC.java:121)
at homework5.Main.main(Main.java:41)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误.
我的方法看起来像
public void critReactRoomStateChange(String command, PC pc) {
Creature temp = null;
Iterator iterator = getCreatures().keySet().iterator();
while (iterator.hasNext()) {
String names = iterator.next().toString();
if (!(getCreatures().get(names) instanceof PC)) {
temp = …Run Code Online (Sandbox Code Playgroud) 我需要选择所有不以1-9之间的数字开头的条目.
示例条目:
所以如果我对上面的内容进行了查询,我会期望:
调用表并调用objects该列location.
我试过的东西:
SELECT DISTINCT name, location FROM object WHERE location NOT LIKE '1%' OR '2%' OR '3%' OR '4%' OR '5%' OR '6%' OR '7%' OR '8%' OR '9%';
Run Code Online (Sandbox Code Playgroud)
不幸的是,这是不成功的.如果无法做到这一点请告诉我,我将使用Perl修改数据.
谢谢
您好,我想打印一些东西,以便它们对齐。
for (int i = 0; i < temp.size(); i++) {
//creatureT += "[" + temp.get(i).getCreatureType() + "]";
creatureS = "\t" + temp.get(i).getName();
creatureT = " [" + temp.get(i).getCreatureType() + "]";
System.out.printf(creatureS + "%15a",creatureT + "\n");
}
Run Code Online (Sandbox Code Playgroud)
输出是
Lily [Animal]
Mary [NPC]
Peter [Animal]
Squash [PC]
Run Code Online (Sandbox Code Playgroud)
我只希望[Animal],[NPC]和[PC]像
Lily [Animal]
Mary [NPC]
Peter [Animal]
Squash [PC]
Run Code Online (Sandbox Code Playgroud)
说我知道没有名字会超过15个字符。
我认为这是一个常见的问题,但我已经尝试过我在其他几篇文章中读过的内容,并且我遇到了同样的命运.
我正在使用rbenv,因为这是我第一次遇到的.
rake db:create
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:177:in `rescue in spec'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/connection_specification.rb:174:in `spec'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/connection_handling.rb:50:in `establish_connection'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:8:in `establish_connection'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/mysql_database_tasks.rb:15:in `create'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:93:in `create'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:107:in `block in create_current'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:275:in `block in each_current_configuration'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:274:in `each'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:274:in `each_current_configuration'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/tasks/database_tasks.rb:106:in `create_current'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/activerecord-4.2.4/lib/active_record/railties/databases.rake:17:in `block (2 levels) in <top (required)>'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:240:in `call'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:240:in `block in execute'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:235:in `each'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:235:in `execute'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:150:in `invoke_task'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `each'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:100:in `top_level'
/Users/cmunger/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/application.rb:78:in `block in …Run Code Online (Sandbox Code Playgroud) 我正在思考是否可以在Perl中的一行中创建数组引用的问题.有点像你定义一个数组.我通常会做以下事情:
#!/usr/bin/perl
# your code goes here
use warnings;
use strict;
use Data::Dumper;
my @array = qw(test if this works);
my $arrayref = \@array;
print Dumper($arrayref);
Run Code Online (Sandbox Code Playgroud)
我的想法是你应该能够做到的:
my $arrayref = \(qw(test if this works);
Run Code Online (Sandbox Code Playgroud)
然而,这不符合我的预期.这甚至可能吗?
我正在尝试创建一个程序,我在一个文件中读到了一堆文本.然后我拿出标点符号,然后我读了一个文件,里面有停用词.两者都被读入并放入数组中.我正在尝试将一般文本文件的数组放入哈希值.我不确定我做错了什么,但我正在努力.我想这样做,所以我可以生成有关重复多少单词和不重复多少单词的统计数据,但我必须取消停止单词等.
无论如何这里是我到目前为止我发表评论#WORKING ON MERGING ARRAY IN HASH,这是我工作的地方.我不认为我试图将数组放入哈希的方式是正确的,但我在网上查看了%hash {array} ="value"; 不编译.所以不知道怎么做.
谢谢,如果您对我有任何疑问,我会尽快回复.
#!/usr/bin/perl
use strict;
use warnings;
#Reading in the text file
my $file0="data.txt";
open(my $filehandle0,'<', $file0) || die "Could not open $file0\n";
my@words;
while (my $line = <$filehandle0>){
chomp $line;
my @word = split(/\s+/, $line);
push(@words, @word);
}
for (@words) {
s/[\,|\.|\!|\?|\:|\;]//g;
}
my %words_count; #The code I was told to add in this post.
$words_count{$_}++ for @words;
Run Code Online (Sandbox Code Playgroud)
接下来,我读到了另一个数组中的停用词.
#Reading in the stopwords file
my $file1 = "stoplist.txt";
open(my $filehandle1, …Run Code Online (Sandbox Code Playgroud) 我有一个哈希,我按最大值到最小值排序.如何进入前5名呢?这里有一篇帖子谈到只获得一个值.
我明白,那么让我们说这些值将它们添加到数组并删除哈希中的元素然后再次执行该过程?
似乎应该有一个更简单的方法来做到这一点,但那.
我的哈希称为%words.
编辑完成代码,因为问题得到了回答而不需要它.
我从文本文件中读入并分配变量,就好像它们是带有列表的数组一样。我通过在换行符上爆炸来做到这一点。
但是,我还想修剪输入两侧的任何空白。根据我的理解和测试,这正是 trim() 所做的。
我想缩短它,以便它减少重复和更容易阅读。
$config = file_get_contents('scripts/secure/config.txt');
list($host, $dbname, $username, $password) = explode ("\n", $config);
$host = trim($host);
$dbname = trim($dbname);
$username = trim($username);
$password = trim($password);
Run Code Online (Sandbox Code Playgroud)
我尝试了几种不同的方法,但似乎都不起作用。我上面的方法确实有效,但我正在寻找一种单行方法。