我正在用perl编写一个基本的歌曲管理程序,该程序通过使用模块允许用户将歌曲名称和歌曲时间对添加到哈希中,其中键是歌曲的名称,值是播放时间歌曲,它们都是弦乐。addSong可以正常运行,但是removeSong不能正常运行。在removeSong中,我首先要检查传入的歌曲名称字符串是否作为键存在。如果输入与现有键匹配,则将其删除(以及其对应的值),如果不是,则子例程发出错误消息。当我通过删除歌曲“ Hello”继续测试该子例程时,我收到了我编写的错误消息,当输入与键不匹配并且使用Data时发出该错误消息:
我使用了这个stackoverflow链接来寻求帮助: 如何从Perl中的哈希中删除键?
这是我的test.pl函数的代码:
use warnings;
use FindBin;
use lib $FindBin::Bin;
use SongList;
use strict;
SongList::addSong("Hello", "5.23");
SongList::addSong("all my heros are cornballs", "3:23");
SongList::addSong("Grimy Waifu", "2:55");
SongList::addSong("ptsd", "2:28");
SongList::removeSong("Hello");
Run Code Online (Sandbox Code Playgroud)
这是我的SongList.pm模块的代码:
package SongList;
#DECLARE VARIABLES AS LOCALLY AS POSSIBLE TO PREVENT BUGS
use strict;
use warnings;
use Data::Dumper;
my %songhash;
my $songlisttitle;
sub addSong{#this works
my ($namesong, $timesong) = @_;
$songhash{$namesong}=$timesong;
print "success\n";
print Dumper(\%songhash);
}
sub removeSong{
my $namesong=@_;
print "removing song from list\n";
if(exists $songhash{$namesong}){
delete($songhash{$namesong})
}
else{ …Run Code Online (Sandbox Code Playgroud) 我在 Windows 10 上的 WSL 中使用 Ubuntu,并且在 WSL 中安装了 git 并定期使用它。我有一个非常烦人的问题,我尝试缓存我的 github 凭据,这样我就不必在提交时不断输入我的用户名/密码,但它不起作用。我严格按照 github 提供的说明进行操作。首先我输入:
git config --global credential.helper cache
Run Code Online (Sandbox Code Playgroud)
然后我输入:
git config --global credential.helper 'cache --timeout=2629800'
Run Code Online (Sandbox Code Playgroud)
但什么也没发生,我仍然需要不断输入我的github用户名和密码
编辑:
为了澄清一下,我是通过 ubuntu wsl 上的 bash 终端完成这一切的,并且我没有使用 Windows 版本的 git。我使用的是 ubuntu 中包含的 git 版本。我输入的这些命令都是linux命令。
我创建了一个简单的 Ada 程序,它允许用户用最多 100 个非负和非零整数填充数组,然后将它们打印出来。当我调用函数来打印数字时,它会打印出它们,但同时它也会打印出一堆奇怪且看似随机的数字。我在代码中犯了什么错误导致程序输出如此奇怪的结果?这是我第一次用 Ada 写作。例如,当我用数字 [1,2,3,4,5] 填充空数组时,会打印出以下内容:
1
2
3
4
5
32624
911328835
32624
911328836
32624
67043328
134217726
134217726
2013265921
134217726
134217726
134217726
67043328
909181968
32624
2114692683
89452
914381552
32624
1543503876
2
14
2
14
Run Code Online (Sandbox Code Playgroud)
我在 ubuntu 上使用 gnatmake 编译器,在编译源代码时,它没有给我任何错误/警告消息。
这是我的源代码,我知道我可能不需要使用单独的函数,但我还是出于学习目的实现了它们。
with Ada.Containers.Vectors;
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
use Ada.Containers;
procedure thing is
type Vector is array (1..100) of Integer;
A: Vector;--array doesn't need to be completely filled up
K: Integer;
--array filling function …Run Code Online (Sandbox Code Playgroud)